iOS XML解析简述

27 篇文章 0 订阅
11 篇文章 0 订阅
XML数据解析:
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
设置代理:
parser.delegate = self;
开始解析
[parser parse];

代理方法:

开始解析文档,可在其中初始化一些需要的量
- (void)parserDidStartDocument:(NSXMLParser *)parser

得到解析的节点名称:  elementName为节点名称,可在此进行判断是否为某一节点
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict

得到节点中的数据: 注意这个方法可能会调用多次,需要用[currentText appendString:string];
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string

一个节点完成后,在此处理节点,例如添加到一个数组或字典中:
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName

前面三个方法会循环调用直到数据解析完成后会调用解析完成后的操作。


解析完成:
- (void)parserDidEndDocument:(NSXMLParser *)parser

注意点:如果创建了一个对象,只是临时存放一些值,然后还要去存放另一些值,就记着不要用同一块内存空间,不然在清楚数据的同时也会导致自己的数据找不到,最好的方法就是各放到一块存储空间中,这样才可以得到解决。方法就是创建时放到恰当的位置。



XML解析之原理分析:
XML解析一般分为两种模式SAX和DOM,事件和文件。

XML解析之SAX解析,以及对NSXMLParser的应用
sax解析说白了,就是一个事物模型解析,从头开始读取文档然后根据读取到的头标签时要怎么去处理,读完头标签后,理论上是读取标签值了,然后读取后遇到的结束标签等。 上面分析的结构就是sax的一种解析。

Dom文档解析模型,TBXML第三方应用。
dom解析模型就像一个树结构,节点,子节点,兄弟节点等等。
这个解析器太简化了,太简洁的东西导致控制的入口点太少,就比如一个一键优化的概念是一样的。

简单来说,SAX解析器会检测整个XML树形结构,你的代码会控制它在哪里停止,使用哪些数据之类的事情,也就是说,SAX可控制性强,占用内存小,适用于提取部分数据。

DOM解析器会检测整个文档并且在内存中生成一个复制品,之后你的任何操作都是在这个复制品中进行的。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值