XML解析
2015-07-04 16:45
295 查看
XML文档格式如下:
JSON和XML表示同一个文件时,JSON的体积更小.
XML解析有2种大类:
1.DOM:将整个XML文件一口气加载到内存中,合适解析小文件,可以随意访问元素
2.SAX:从根元素开始加载,按顺序一个一个元素往下解析,适合大文件,不能往回退访问之前的元素
iOS中解析XML有几种方式:
1.NSXMLParser:SAX,苹果SDK自带的
2.libxml2:纯C语言的,同时支持DOM和SAX
3.GDataXML:DOM,google开发,基于libxml2
解析方式的选择:
1.大文件:NSXMLParser/libxml2
2.小文件:GDataXML
1>使用NSXMLParser方法:
代理方式:调用<NSXMLParserDelegate>
2>GDataXML使用方法
需要配置环境:
2.1将GDataXML库包含进来
2.2将动态链接库libxml2.dylib加进来
2.3将动态链接库指向使用的头文件路径
在项目->Header search paths中增加/usr/include/libxml2
2.4在Other linker flags中进行连接 +"-lxml2"
2.5将GDataXMLNode.m设置为MRC
在项目->build phases -> 双击文件右侧加入"-fno-objc-arc"
可以开始用了:
--end
<?xml version = "1.0" encoding = "UTF-8"?>//元素
<book> <name>Xml应用系列教程</name> <auhtor>学路的小孩</auhtor> <date>2009-03-23</date> </book>
JSON和XML表示同一个文件时,JSON的体积更小.
XML解析有2种大类:
1.DOM:将整个XML文件一口气加载到内存中,合适解析小文件,可以随意访问元素
2.SAX:从根元素开始加载,按顺序一个一个元素往下解析,适合大文件,不能往回退访问之前的元素
iOS中解析XML有几种方式:
1.NSXMLParser:SAX,苹果SDK自带的
2.libxml2:纯C语言的,同时支持DOM和SAX
3.GDataXML:DOM,google开发,基于libxml2
解析方式的选择:
1.大文件:NSXMLParser/libxml2
2.小文件:GDataXML
1>使用NSXMLParser方法:
代理方式:调用<NSXMLParserDelegate>
- (void)XMLParserWithData:(NSData *)data { //创建解析器 NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data]; //设置解析器代理 parser.delegate = self; #warning mark 同步解析 //开始解析 [parser parse]; }代理方法:
#pragma mark -NSXMLParserDelegate //开始解析文档头部位置:<?xml version = "1.0" encoding = "UTF-8"?> - (void)parserDidStartDocument:(NSXMLParser *)parser { } //开始解析元素,每个元素开始解析的时候都会到这里 - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict { } //解析完毕元素 - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { } //解析完毕文档 - (void)parserDidEndDocument:(NSXMLParser *)parser { }
2>GDataXML使用方法
需要配置环境:
2.1将GDataXML库包含进来
2.2将动态链接库libxml2.dylib加进来
2.3将动态链接库指向使用的头文件路径
在项目->Header search paths中增加/usr/include/libxml2
2.4在Other linker flags中进行连接 +"-lxml2"
2.5将GDataXMLNode.m设置为MRC
在项目->build phases -> 双击文件右侧加入"-fno-objc-arc"
可以开始用了:
- (void)GDataXMLWithData:(NSData *)data { //1.加载文档 GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:data options:0 error:nil]; //2.获得根元素 GDataXMLElement *rootElement = doc.rootElement; //3.获取所有book的元素 NSArray *elements = [rootElement elementsForName:@"book"]; }
--end
相关文章推荐
- POSIX线程-条件变量(二)
- Sqoop工具
- Servlet的一些知识
- 编码方式
- Redis Mac 安装及简单命令使用
- 提高经济运行质量的问题与对策
- memcache最长有效期是多久?
- 关于thinkphp3.2中使用smarty模板success调转失败的解决办法
- POSIX线程-条件变量(一)
- 注册机的使用
- 集群技术(三)MySQL集群深度解析
- JDBC
- 企业监控与信息管理强大助手-逐浪舆情系统交付商用
- 集群技术(三)MySQL集群深度解析
- 条款38 通过复合塑膜出has-a或"根据某物实现"
- 返回值为 Record类型的函数 初始化 Result
- WexinPay for WooCommerce
- DB2 EXPRESS-C 10.1 数据库安装问题解决
- web错误
- 邓小平社会主义市场经济理论要点