`
ytwhw
  • 浏览: 97220 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

IOS中XML解析之NSXMLParser

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

 

分享到:
评论

相关推荐

    ios xml解析 NSXMLParser

    ios xml解析 NSXMLParser。 NSXMLParser是基于SAX的解析方式。NSXMLParser采用了委托设计模式,因此他的实现类需要采用协议并支持委托。NSXMLParser解析XML需要委托NSXMLParserDelegate实现。

    ios-iOS xml解析.zip

    xml解析的两种常用方式, DOM解析:一次性将整个XML文档加载进内存,比较适合解析小文件,例如:GDataXml解析 SAX解析:从根元素开始,按顺序一个元素一个元素往下解析,比较适合解析大文件,例如:NSXMLParser解析

    iOSXML解析器SHXMLParser.zip

    SHXMLParser 是一个基于 NSXMLParser 构建的易用的 XML 解析器,可转换 XML 数据到 Objective-C 对象。 标签:SHXMLParser

    iOS开发使用XML解析网络数据

    2、IOS中XML解析方案有很多种:  2-1、第三方框架:  libxml2:纯C语言,默认包含在iOS SDK中,同时支持DOM和SAX解析  GDataXML:DOM方式解析,由Google开发,基于libxml2  2-2、苹果原生  NSXMLParser:SAX...

    使用Swift实现iOS App中解析XML格式数据的教程

    主要介绍了使用Swift实现iOS App中解析XML格式数据的教程,讲到了iOS中提供的NSXMLParser和NSXMLParserDelegate两个API的用法,需要的朋友可以参考下

    iOS开发中常见的解析XML的类库以及简要安装方法

    在iPhone开发中,XML的解析有很多选择,iOS SDK提供了NSXMLParser和libxml2两个类库,另外还有很多第三方类库可选,例如TBXML、TouchXML、KissXML、TinyXML和GDataXML。问题是应该选择哪一个呢? 解析 XML 通常有两...

    在Swift中实现的简单XML解析器-Swift开发

    在Swift中实现的简单XML解析器这是什么? 这是一个受SwiftyJSON和SWXMLHash启发的XML解析器。 Foundation框架中的NSXMLParser是一种“ SAX”解析器。 它具有足够的性能,但是在Swift中实现了一点inc Simple XML ...

    SWXMLHash:Swift中的简单XML解析

    SWXML哈希 SWXMLHash是在Swift中解析XML的相对简单的方法。 如果您熟悉NSXMLParser ,则此库是围绕它的简单包装。 从概念上讲,它提供了从XML到数组字典(又名哈希)的转换。 该API从中获得了很多启发。内容要求iOS ...

    Axt:适用于iOS的宽容HTML SAX解析器

    轴心受NSXMLParser启发的iOS版HTML SAX解析器。 Axt是斧头)的德语单词。 Axt受到NSXMLParser极大启发,它非常适合解析XML,但不适用于HTML。 HTML通常格式不正确,这使其不适用于NSXMLParser 。 在这种情况下, ...

    SwiftRSSReader:使用Swift 2,Xcode 7,iOS 9构建RSS Reader演示应用程序

    概述基于Swift的RSS阅读器,可将rss feed作为xml从远程服务器加载,并使用NSXMLParser对其进行解析。 解析完成后,它将数据加载到UITableView即显示标题和日期。 当单击标题时,它将转到详细信息页面,在该页面中,...

    ios-XMLDictionary.zip

    xml转字典,采用系统NSXMLParser解析,轻轻松松一句代码完成xml转换字典操作

    AEXMLDemo:使用 Marko Tadic 创建的 AEXML Parser 的示例项目 - http

    AEXML 用 Swift 编写的适用于 iOS 的简单轻量级 XML 解析器AEXML是一个其中包括三类: 班级描述AEXML元素基类AEXML文档继承自 AEXMLElement AEXML解析器NSXMLParser 的简单包装器这不是强大的全功能 XML 解析器...

    美团网团购信息

    美团网的团购信息解析和显示(IOS版),主要是用自带的NSXMLParser来解析的

    VMXMLParser:Swift中的NSXMLParser包装器

    VMXMLParserSwift 2.0中的NSXMLParser包装器特征: 基于关闭响应作为字典数组Unicode支持截屏样例代码var url:String=...= nil){ println(error) }else{ println(tags!) } })样品回复({{description =“这个解析器能...

    NSXMLParserDemo

    ios平台下对于NSXMLParser类的使用,一个简单的demo,希望有帮助

    GDataXMLNode

    GDataXMLNode用于解析xml文件,比IOS自带的NSXmlParser好用的多,省去了代理回调的麻烦

Global site tag (gtag.js) - Google Analytics