iOS_解析XML :KissXML、XmlReader
来源:互联网 发布:淘宝直通车产品在哪里 编辑:程序博客网 时间:2024/05/16 08:38
iOS_解析XML(很实用的两框架:KissXML、XmlReader)
关于网络返回的数据进行解析,一般有JSON解析和XML解析,JSON解析几乎没有任何技术含量,使用反序列化即可(NSJSONSerialization) ,解析XML确实有点技术含量,但是吧很多朋友却总在纠结DOM解析和SAX解析,其实还是有很多框架可以用的,下面介绍两个实际工作中常用的两个框架:KissXML和XmlReader
准备资料:
- 一个XML的文件:demo.xml
- xml内容为:
<Class className = "sannianerban"> <Student name = "赵四" age = "18"/> <Student name = "赵四1" age = "118"/></Class>
框架一、KissXML
一)、简介:
- 有人说简单,有人说麻烦,,,我觉得:此处省略一万字。
二)、配置
1、添加附件里面的KissXML到工程
2、加入libxml2.tbd 到Frameworks
3、修改工程信息,右击Targets下工程名选“Build Settings”,进入Header Search Paths添加:/usr/include/libxml2,
4、引用头文件:#import "DDXML.h"
三)、使用
//获取xml路径 NSString *path = [[NSBundle mainBundle] pathForResource:@"demo.xml" ofType:nil]; NSString *xmlString = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; DDXMLDocument *doc = [[DDXMLDocument alloc] initWithXMLString:xmlString options:0 error:nil]; //开始解析 NSArray *children = [doc nodesForXPath:@"//Student" error:nil]; //遍历每个元素 for (DDXMLElement *obj in children) { NSString *name =[[obj attributeForName:@"name"] stringValue]; NSString *age =[[obj attributeForName:@"age"] stringValue]; NSLog(@"name = %@,age = %@",name,age); }
框架二、XMLReader
一)、简介:
- XmlDocument和XElement在读取Xml时要将整个Xml文档放到内存中去操作,这样做操作简单,但是很费内存和IO(可能是磁盘IO或者网络IO);而在有些场景下我们必须考虑尽可能节省内存和IO的开销,就考虑XmlReader
XmlReader读取Xml需要通过Read()实例方法,不断读取Xml文档中的声明,节点开始,节点内容,节点结束,以及空白等等,直到文档结束,Read()方法返回false。 - XmlReader是基于数据流的,占用极少的内存,是只读方式的,所以速度极快.只能采用遍历的模式查找数据节点。
二)、使用:
引用头文件:#import "XMLReader.h"
//1. 本地获取XML,并转化为NSData类型 NSString *path = [[NSBundle mainBundle] pathForResource:@"demo.xml" ofType:nil]; NSURL *url = [NSURL fileURLWithPath:path]; NSData *data = [NSData dataWithContentsOfURL:url]; //2. 开始转化 NSError *error; NSDictionary *dic = [XMLReader dictionaryForXMLData:data error:&error]; //3. 打印出来之后,自己字典转模型吧,这个不用我教吧?? NSLog(@"把内容字典转模型 = %@",dic);
转自 http://www.jianshu.com/p/2eb1c93d75bb
0 0
- iOS_解析XML :KissXML、XmlReader
- iOS_解析XML(很实用的两框架:KissXML、XmlReader)
- 使用KissXml解析xml
- xml解析 kissxml
- Kissxml 解析 XML数据的简单Demo
- KissXml——xml解析库
- 基于KissXML,简易解析xml ( iOS )
- KissXml 解析
- Kissxml 解析
- KissXML解析
- Silverlight中XmlReader解析XML的流程
- XMLReader强大的XML解析器
- node.js解析xml(xmlreader)
- 使用XMLReader接口解析XML-个人记录
- KissXML解析问题解决
- 如何正确运用PHP XMLReader解析XML文档
- node.js 解析xml BOM问题(xmlreader sax.js)
- 使用NSXMLParser解析XML -- XMLReader、XMLWriter
- [从头读历史] 第292节 神之物语 特洛伊的故事
- 【记录】定时器
- 用OpenCV实现Photoshop算法(一): 图像旋转
- 月入十万,难吗?
- SPOOLing技术
- iOS_解析XML :KissXML、XmlReader
- 九度OJ 1042
- atoi函数理解字符存储
- Node.js 工具模块
- Android之SharedPreferences的数据存储
- python学习——使用list和tuple
- 洛谷 P1045 麦森数
- JZOJ. 3450 山峰 summits
- java中自己用过的数据结构(队列Queue、优先级队列PriorityQueue和栈Stack),及其分别的应用场景