NSXMLParser(SAX解析)
一、使用步骤
// 传入 XML 数据,创建解析器NSXMLParser*parser = [[NSXMLParser alloc] initWithData:data];
// 设置代理,监听解析过程
parser.delegate = self ;
// 开始解析
[parser parse];
二、NSXMLParserDelegate
NSXMLParser 采取的是 SAX 方式解析,特点是事件驱动,下面情况都会通知代理
当扫描到文档的开始时调用(开始解析)
- ( void )parserDidStartDocument:(NSXMLParser*)parser
当扫描到文档的结束时调用(解析完毕)
- ( void )parserDidEndDocument:(NSXMLParser*)parser
当扫描到元素的开始时调用( attributeDict 存放着元素的属性)
- ( void )parser:(NSXMLParser*)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qNameattributes:(NSDictionary *)attributeDict
当扫描到元素的结束时调用
- ( void )parser:(NSXMLParser*)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
- ( void )parserDidStartDocument:(NSXMLParser*)parser
当扫描到文档的结束时调用(解析完毕)
- ( void )parserDidEndDocument:(NSXMLParser*)parser
当扫描到元素的开始时调用( attributeDict 存放着元素的属性)
- ( void )parser:(NSXMLParser*)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qNameattributes:(NSDictionary *)attributeDict
当扫描到元素的结束时调用
- ( void )parser:(NSXMLParser*)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName