加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

NSXMLParser实现XML解析

发布时间:2020-12-16 08:52:23 所属栏目:百科 来源:网络整理
导读:iOS自带的XML解析类是NSXMLParser,对其解析简要说明 : 1、是SAX方式解析 2、主要步骤是: (1)创建NSXMLParser实例(alloc) (2)初始化parser (3)定义 parser的delegate (4)[parser parse]; ++++++当parser初始化并执行parse语句时([parserparse]),

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.52php.cn/article/p-empqvddu-bdk.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读