iOS之GDataXMLNode对XML解析
来源:互联网 发布:微博互粉软件哪个好 编辑:程序博客网 时间:2024/05/17 07:57
GDataXMLNode是Google提供的开源XML解析类,对libxml2.dylib进行了Objective-C的封装
采用DOM方式解析数据
iOS中包含一个C语言的动态链接库libxml2.dylib,解析速度比NSXMLParer快(NSXMLParer解析参照:iOS之NSXMLParser对XML解析)
首先下载第三方包,并导入工程
链接: http://pan.baidu.com/s/1sjOGfId 密码: ue9v
这个时候,编译一下工程,会报错
提示用户:#import <libxml/tree.h>文件找不到,这里我们看GDataXMLNode.h文件上方的提示:
// libxml includes require that the target Header Search Paths contain//// /usr/include/libxml2//// and Other Linker Flags contain//// -lxml2
可见我们需要配置两个属性
一、在Header Search Paths中包含"/usr/include/libxml2"
二、在Other Linker Flags中包含“-lxml2”
Other Linker同样的操作
配置完后,编译工程,如果还报错的话:我们就需要配置MRC与ARC混编
参照iOS之MRC与ARC混编的设置
这样就ok了。
下面来看看怎么使用GDataXMLNode解析XML文件
XML文件结构如下
<?xml version="1.0" encoding="UTF-8" ?><students> <student type="CEO"> <name>zhangsan001</name> <age>18</age> <gender>man</gender> </student> <student> <name>zhangsan002</name> <age>10</age> <gender>woman</gender> </student> <student> <name>zhangsan003</name> <age>12</age> <gender>manman</gender> </student></students>
解析过程:
// 1.获取文件路径 NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Students" ofType:@"xml"]; // 2.获取数据 NSData *data = [NSData dataWithContentsOfFile:filePath]; // 3.创建解析对象 GDataXMLDocument *dataXmlDocument = [[GDataXMLDocument alloc] initWithData:data options:0 error:nil]; // 3.1获取根节点 GDataXMLElement *rootElement = dataXmlDocument.rootElement; // 初始化大数组 _allDataArray = [NSMutableArray array]; // 4.遍历根节点,获取所有代表学生的节点 for (GDataXMLElement *stuElement in rootElement.children) { // 4.1创建学生对象 Student *stu = [Student new]; // 4.2遍历学生节点下的name、age、gender子节点 for (GDataXMLElement *valueElement in stuElement.children) { // 4.3使用KVC给stu对象赋值 [stu setValue:valueElement.stringValue forKey:valueElement.name]; } // 4.4将stu对象添加到大数组中 [_allDataArray addObject:stu]; } NSLog(@"%@", _allDataArray);
执行结果
2015-06-23 15:42:13.181 Lesson_15_xml[4233:198463] ( "name = zhangsan001 age = 18 gender = man", "name = zhangsan002 age = 10 gender = woman", "name = zhangsan003 age = 12 gender = manman")
下一章:JSON解析
0 0
- iOS之GDataXMLNode对XML解析
- iOS-XML解析之-GDataXMLNode
- 数据解析(二)解析XML之GDataXMLNode
- IOS开发中使用GDataXmlNode解析xml
- iOS 用GDataXMLNode创建和解析XML
- iOS 用GDataXMLNode创建和解析XML
- iOS的XML解析库:GDataXMLNode
- iOS GDataXMLNode 解析XML DOM方式 总结
- XML解析之dom方式GDataXMLNode
- GDataXMLNode解析xml文件
- GDataXMLNode库 XML解析
- GDataXMLNode:xml解析库
- iOS网络数据解析--XML解析详解(GDataXMLNode&原生NSXMLParser)
- XML解析之DOM解析引入GDataXMLNode的方法
- iOS数据解析,XML(SAX,DOM - GDataXMLNode)
- ios使用NSXMLParser类和 GDataXMLNode解析XML
- 采用GDataXMLNode进行xml解析
- DOM解析(GDataXMLNode)详解,xml解析
- java操作redis
- 50条大牛C++编程开发学习建议
- RMAN-06026,RMAN-06100
- socket的发送和接收缓冲区
- 查看oracle数据库表空间使用情况
- iOS之GDataXMLNode对XML解析
- C++队列实现和队列简介
- 在java中实现日期类型和字符串类型的转换大全(Date String Timestamp Datetime)
- ffmpeg常用基本命令
- duilib list 去掉表头
- LayoutInflater的inflate函数用法详解
- Scrum敏捷过程实践
- UV Toolkit贴图教程甜
- 19.在指定的字符串数组中查找给定的字符串