2015年10月10日星期六

NSXMLParser笔记

使用NSXMLParser需要实例化(alloc)创建解析器 (initWithData/initWithContentsOfURL/initWithStream)
定义解析器委托 (delegate)
开始解析(parser)
当parser初始化并执行parser语句的时候,程序会开始走代理方法

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

<NSXMLParserDelegate>

  开始处理xml数据,他会把整个xml遍历一遍,识别元素节点名称elementName;
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(nullable NSString *)namespaceURI qualifiedName:(nullable NSString *)qName attributes:(NSDictionary<NSString *, NSString *> *)attributeDict;


得到文本节点里存储的信息数据         
 - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string;  
        
存储从第二个代理方法中获取到的信息           
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName  
        
 这就是解析的过程,在这个过程中会不停的重复的执行这三个代理方法,直到遍历完成                                   
解析开始执行的方法         
 - (void)parserDidStartDocument:(NSXMLParser *)parser;        
 解析结束执行的方法          
- (void)parserDidEndDocument:(NSXMLParser *)parser;              
当出现解析错误的时候,会执行这个方法    
 - (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError;  

没有评论:

发表评论