XML解析
发布时间:2020-12-16 00:16:07 所属栏目:百科 来源:网络整理
导读:XML解析NSXMLParser解析过程实例化NSXMLParser,传入从服务器接收的XML数据定义解析器代理解析器解析通过解析代理方法完成XML数据的解析///////////////////////////////////////////////////////////////NSXMLParser解析代理方法// 1. 开始解析XML文档- (vo
XML解析 NSXMLParser解析过程 实例化NSXMLParser,传入从服务器接收的XML数据 定义解析器代理 解析器解析 通过解析代理方法完成XML数据的解析 /////////////////////////////////////////////////////////////// NSXMLParser解析代理方法 // 1. 开始解析XML文档 - (void)parserDidStartDocument: // 2. 开始解析某个元素,会遍历整个XML,识别元素节点名称 - (void)parser:didStartElement:namespaceURI:qualifiedName:attributes: // 3. 文本节点,得到文本节点里存储的信息数据,对于大数据可能会接收多次!为了节约内存开销 - (void)parser:foundCharacters: // 4. 结束某个节点,存储从parser:foundCharacters:方法中获取到的信息 - (void)parser:didEndElement:namespaceURI:qualifiedName: 注意:在解析过程中,2、3、4三个方法会不停的重复执行,直到遍历完成为止 // 5. 解析XML文档结束 - (void)parserDidEndDocument: // 6. 解析出错 - (void)parser:parseErrorOccurred: /////////////////////////////////////////////////////////////// 案例:(这只是代码,功能没有验证) /** * XML解析 */ - (void)xmlWithRequest { NSString *xmlTxt = @"<?xml version="1.0" encoding="UTF-8"?><recipe><recipename>Ice Cream Sundae</recipename><ingredlist><listitem><quantity>3</quantity><itemdescription>chocolate syrup or chocolate fudge</itemdescription> </listitem> <listitem> <quantity>1</quantity> <itemdescription>nuts</itemdescription> </listitem> <listitem> <quantity>1</quantity> <itemdescription>cherry</itemdescription> </listitem> </ingredlist> <preptime>5 minutes</preptime> </recipe>"; //1、获取解析器 NSURL *url = [NSURL URLWithString:xmlTxt]; NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:url]; //2、设置代理(将代理完成) parser.delegate = self; //3、开始解析 [parser parse]; } // 1. 开始解析XML文档 - (void)parserDidStartDocument:(NSXMLParser *)parser { NSLog(@"开始解析"); } // 2. 开始解析某个元素,会遍历整个XML,识别元素节点名称 - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict { NSLog(@"开始节点:%@,%@",elementName,attributeDict); } // 3. 文本节点,得到文本节点里存储的信息数据,对于大数据可能会接收多次!为了节约内存开销 - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { NSLog(@"%@",string); } // 4. 结束某个节点,存储从parser:foundCharacters:方法中获取到的信息 //注意:在解析过程中,2、3、4三个方法会不停的重复执行,直到遍历完成为止 - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { NSLog(@"开始节点:%@",elementName); } // 5. 解析XML文档结束 - (void)parserDidEndDocument:(NSXMLParser *)parser { NSLog(@"结束解析"); } // 6. 解析出错 - (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError { NSLog(@"错误处理"); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |