NSXMLParser实现XML解析

前端之家收集整理的这篇文章主要介绍了NSXMLParser实现XML解析前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

iOS自带的XML解析类是NSXMLParser,对其解析简要说明 :

1、是SAX方式解析

2、主要步骤是:

(1)创建NSXMLParser实例(alloc)

(2)初始化parser

(3)定义 parser的delegate

(4)[parser parse];

++++++当parser初始化并执行parse语句时([parserparse]),程序会跳到代理方法里面走第一个代理方法++++++

3、这种解析方式是利用它的代理NSXMLParserDelegate实现的

(1)-(void)parser:(NSXMLParser*)parserdidStartElement:(NSString*)elementNamenamespaceURI:(NSString*)namespaceURIqualifiedName:(NSString*)qNameattributes:(NSDictionary*)attributeDict

开始处理xml数据,它会把整个xml遍历一遍,识别元素节点名称

(2)-(void)parser:(NSXMLParser*)parserfoundCharacters:(NSString*)string

也就是得到文本节点里存储的信息数据。

(3)-(void)parser:(NSXMLParser*)parserdidEndElement:(NSString*)elementNamenamespaceURI:(NSString*)namespaceURIqualifiedName:(NSString*)qName

存储从第二个代理方法获取到的信息

另外:

解析开始:

-(void)parserDidStartDocument:(NSXMLParser*)parser;

解析结束:

-(void)parserDidEndDocument:(NSXMLParser*)parser;

解析出错:

-(void)parser:(NSXMLParser*)parserparseErrorOccurred:(NSError*)parseError;

注意:

解析xml数据的时候,

每当遇到元素节点的时候都会执行第一个代理方法,如果有属性节点,可以直接在这个方法获取里面的值;

每当遇到文本节点的时候都会执行第二个代理方法获取文本节点中的值然后到第三个方法中进行区分。

如果是换行符的话也会获取,因为换行符也是文本节点,不过当一个元素节点结束后的换行符是不会获取的。

比如说: (换行符1)

<li>文本节点</li>

(换行符2)

元素节点前后各有一个换行符,这时只会获取换行符1,而不会获取换行符2。


原文出处:http://www.jb51.cc/article/p-empqvddu-bdk.html

猜你在找的XML相关文章