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
本文详细介绍了NSXMLParser的使用步骤,包括如何通过数据创建解析器、设置代理进行监听解析过程,以及理解NSXMLParser作为SAX解析的特点,即事件驱动。文中还阐述了NSXMLParserDelegate中的关键方法,如开始文档解析、结束文档解析、开始元素解析、结束元素解析等,帮助开发者深入理解并有效应用NSXMLParser进行XML解析。
151

被折叠的 条评论
为什么被折叠?



