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.52php.cn/article/p-empqvddu-bdk.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |