IOS中XML解析之NSXMLParser
NSXMLParser解析XML数据 用法如下:一、首先,必须继承NSXMLParserDelegate协议 @interface ViewController : UIViewController<NSXMLParserDelegate> 二、设置XML数据,并初始化NSXMLParser: 1、从本地XML文件中读取数据 NSString *strPathXml = [ pathForResource:@"group" ofType:@"xml"]; NSData *xmlData = [ initWithContentsOfFile:strPathXml];NSXMLParser *parserXML = [ initWithData:xmlData]; ; ; ; ; ; ; 2、从接口Java Servlet中获取数据 NSString *nstrYwKPIUrl = [initWithFormat:@"%@?citys=%@&startTime=%@&endTime=%@&indexNames=%@",YWKPIURL,city,startTime,endTime,zbz]; //Servlet访问地址与传递参数 NSString *encodedURL = ; //对Servlet访问地址进行编码 NSLog(@"encodedURL is %@",encodedURL); NSXMLParser *parser = [ initWithContentsOfURL:]; ; ; ; parser.delegate = self; ; ;三、解析XML数据 1、遍例xml的节点,执行以下代理方法 -(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict { xmlelement = [initWithString:elementName]; //xmlelement为XML元素节点(xmlelement为字符串变量,是在.h文件中定义的。) } 2、当xml节点有值时,则执行以下代理方法 - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { if () { ]; } //START_TIME XML文件内容节点,ywKPI.times 数组对象,string xml文件START_TIME 节点值。 以下类似。 if () { ; } if () { ; } if () {; } if () { NSString *gsmwljtl =[initWithFormat: @"%@%@",],@"%"]; ; } } 3、当遇到XML节点结束标记时,执行以下代理方法 -(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { xmlelement = nil;//xmlelement为字符串变量,是在.h文件中定义的。 }
页:
[1]