XML是一种自描述的数据交换格式。是一种非常重要的数据交换 格式,多年来一直用于各种计算机语言中。XML类似HTML,有一对对标签对,格式比HTML严谨,一个a8093152e673feb7aba1828c43532094开始,一个5f557f62ae7ac7a14e0b1cb564790dfc结尾.
解析的内容为:
<users> <user id="001"> <name>张三</name> <password>123456</password> <nickname>小张</nickname> <description>1111111111</description> </user> <user id="002"> <name>张三</name> <password>2222222</password> <nickname>小四儿</nickname> <description>李四是个好学生</description> </user> <user id="003"> <name>张三</name> <password>88888888</password> <nickname>小五</nickname> <description>1234567890</description> </user> </users>
事先已将数据读取并存储在data中.
创建一个类,继承自NSObject,命名为userInfo
@property(nonatomic,copy)NSString *uID; @property(nonatomic,copy)NSString *name; @property(nonatomic,copy)NSString *password; @property(nonatomic,copy)NSString *nickname; @property(nonatomic,copy)NSString *description;
再创建一个类,同样继承自NSObject,命名为userParser,实现xml文件的读取.
userParser.h
#import <Foundation/Foundation.h> #import "user.h" @interface userParser : NSObject<NSXMLParserDelegate> //存储信息的数组 @property(nonatomic,retain)NSMutableArray *array; //实例 @property(nonatomic,retain)user *people; //创建字符串保存信息 @property(nonatomic,copy)NSMutableString *buffer; //读取xml文件 -(void)parserWithString:(NSString *)string; @end
userparser.m
#import "userParser.h" @implementation userParser -(void)parserWithString:(NSString *)string { //使用系统XML解析方法 NSXMLParser *parser=[[NSXMLParser alloc]initWithData:[string dataUsingEncoding:NSUTF8StringEncoding]]; //设置代理 parser.delegate=self; //开始解析 [parser parse]; } #pragma mark ---NSXMLParserDelegate--- //开始解析 - (void)parserDidStartDocument:(NSXMLParser *)parser { NSLog(@"it begin"); } //解析结束 - (void)parserDidEndDocument:(NSXMLParser *)parser { NSLog(@"it is over"); for (int i=0; i<_array.count; i++) { user *user=_array[i]; NSLog(@"%@,%@,%@,%@,%@",user.uID,user.name,user.password,user.nickname,user.description); } } //遇到开始标签 //attributeDict标签属性 - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict { if ([elementName isEqualToString:@"users"]) { _array=[[NSMutableArray alloc]init]; } else if ([elementName isEqualToString:@"user"]) { _people=[[user alloc]init]; //<user id="3"> _people.uID=[attributeDict objectForKey:@"id"]; } else if ([elementName isEqualToString:@"name"]) { _buffer=[[NSMutableString alloc]init]; } else if ([elementName isEqualToString:@"password"]) { _buffer=[[NSMutableString alloc]init]; } else if ([elementName isEqualToString:@"nickname"]) { _buffer=[[NSMutableString alloc]init]; } else if ([elementName isEqualToString:@"description"]) { _buffer=[[NSMutableString alloc]init]; } } //结束标签 - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { if ([elementName isEqualToString:@"name"]) { _people.name=_buffer; } else if ([elementName isEqualToString:@"password"]) { _people.password=_buffer; } else if ([elementName isEqualToString:@"nickname"]) { _people.nickname=_buffer; }else if ([elementName isEqualToString:@"description"]) { _people.description=_buffer; } else if ([elementName isEqualToString:@"user"]) { [_array addObject:_people]; } } //读取内容 - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { //NSCharacterSet字符串结合,取出字符串中的空格 [_buffer appendString:[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]]; }
在viewcontroller中,创建userparser的实例对象,通过parserWithString方法实现数据解析
userParser *uparser=[[userParser alloc]init]; [uparser parserWithString:user];
注:将数据解析与界面显示分开写有助于减低程序的耦合,同时也符合MVC编程模式.
以上是XML数据解析的系统方法的代码分享的详细内容。更多信息请关注PHP中文网其他相关文章!

XML在RSS中具有结构化数据、可扩展性、跨平台兼容性和解析验证的优势。1)结构化数据确保内容的一致性和可靠性;2)可扩展性允许添加自定义标签以适应内容需求;3)跨平台兼容性使其在不同设备上无缝工作;4)解析和验证工具确保Feed的质量和完整性。

RSS在XML中的实现方式是通过结构化的XML格式来组织内容。1)RSS使用XML作为数据交换格式,包含频道信息和项目列表等元素。2)生成RSS文件需按规范组织内容,发布到服务器供订阅。3)RSS文件可通过阅读器或插件订阅,实现内容自动更新。

RSS的高级功能包括内容命名空间、扩展模块和条件订阅。1)内容命名空间扩展RSS功能,2)扩展模块如DublinCore或iTunes添加元数据,3)条件订阅根据特定条件筛选条目。这些功能通过添加XML元素和属性实现,提升信息获取效率。

rssfeedsusexmltoStructureContentUpdates.1)xmlProvidesHierarchicalStructurefordata.2)theelementDefinestHefEed'sIdentityAndContainsElements.3)ElementsRementsRementsRepresSentividividividualContentpieces.4)rsssissisexisextensible,允许custemements.5)5)

RSS和XML是用于网络内容管理的工具。RSS用于发布和订阅内容,XML用于存储和传输数据。它们的工作原理包括内容发布、订阅和更新推送。使用示例包括RSS发布博客文章和XML存储书籍信息。

RSS文档是基于XML的结构化文件,用于发布和订阅频繁更新的内容。它的主要作用包括:1)自动化内容更新,2)内容聚合,3)提高浏览效率。通过RSSfeed,用户可以订阅并及时获取来自不同来源的最新信息。

RSS的XML结构包括:1.XML声明和RSS版本,2.频道(Channel),3.条目(Item)。这些部分构成了RSS文件的基础,允许用户通过解析XML数据来获取和处理内容信息。

RSSFEEDSUSEXMLTOSYNDICATECONTENT; PARSINGTHEMINVOLVESLOADINGINGINGINGINSSTRUCTURE,andExtractingData.ApplicationsIncludeBuildBuildingNewSagGregatorSaterNewSagGregatorSator andTrackingPodcastepodcastepisodes。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

Atom编辑器mac版下载
最流行的的开源编辑器

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3汉化版
中文版,非常好用

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)