iOS解析XML数据

  iOS中解析XML数据的类是  NSXMLParser,详细使用方法如下:

  • 假设现在在内存中有XML的二进制数据对象(NSData):data(该数据可能来自网络,也可能是本地的文件数据),设置NSXMLParser对象的协议,代码如下:

  NSXMLParser *xmlParse = [[NSXMLParser alloc] initWithData:data];

  [xmlParse setDelegate:self];

  [xmlParse parse];// 解析开始

  • 解析对象设置后,我们需要实现相关代理协议:NSXMLParserDelegate。实现该协议中的代理方法,必要的几个方法如下:

// 解析开始,寻找需要解析的元素

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict

{

// TODO:获取address元素属性value的值

if ([@"address" isEqualToString:elementName])

{

self.xmlElementName = elementName;

if (attributeDict && [attributeDict objectForKey:@"value"])

{

self.xmlParseResult = [NSMutableString string];

[self.xmlParseResult appendFormat:@"%@", [attributeDict objectForKey:@"value"]];

}

}

}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string

{

if (!self.xmlElementName)

{

return;

}

}

// 解析某个元素结束

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName

{

if ([@"address" isEqualToString:elementName])

{

self.xmlElementName = nil;

}

}

// 解析文档完成,在此可以对解析的结果进行处理

- (void) parserDidEndDocument:(NSXMLParser *)parser

{

// TODO:XML解析完成,结果存储在self.xmlParseResult

if (!self.xmlParseResult || [@"" isEqualToString:self.xmlParseResult])

{

// 在此可以对解析结果进行进一步处理

}

}

iOS解析XML数据,布布扣,bubuko.com

时间: 2025-01-04 01:48:50

iOS解析XML数据的相关文章

IOS开发使用NSXMLParser、GDataXML两种方式解析XML数据

概括:XML数据解析方式有 *IOS原生的NSXMLParser,只支持SAX方式解析,使用简单 *C语言的libxml2,同时支持DOM和SAX方式解析 *google的GDataXML,只支持DOM方式解析,基于libxml2,使用时需要将编译环境配置为非ARC,并添加libxml2.dylib动态库 GDataXMLDocument 1 使用GDataXML的DOM方式解析XML,需要导入#import "GDataXMLNode.h" /** *  DOM方式解析XML数据 *

【iOS开发-网络】两种常用的方法解析XML数据

解析XML数据常用的有两种方法 第一种 使用Google的GDataXMLNode解析XML数据 使用的是DOM方式解析 先把xml一口吞掉 然后一点一点的解析 第二种 使用苹果自带的NSXMLParser解析XML数据 使用的是SAX方式解析 一个标记一个标记的解析 第一种使用步骤 第一步 首先把GDataXML文件夹放入项目中 第二步 更改Bulid Setting里面的东西 更改头文件搜索路径 在Header Search Paths里面添加路径/usr/include/libxml2 在

IOS 解析XML文档

前段时间想找点事做,就是试着看能不能用豆瓣的API做点什么,于是就碰到了这个问题——XML解析. 老师还没讲,只能自己去查. XML文档解析主要有SAX和DOM两种模式,IOS上两种模式都可以用,这里就不做过多介绍,我选择的SAX模式. IOS解析XML用的是自带的NSXML框架,框架的核心是NSXMLParser类和它的委托协议NSXMLParserDelegate,其主要的解析工作是在NSXMLParserDelegate实现类中完成的.委托中定义了许多回掉方法,在SAX解析器从上到下遍历X

iOS 解析html数据

首先把贤哥封装好的解析文件和https://github.com/topfunky/hpple上下载的文件夹拖进工程里 添加 libxml2.dylib 框架在 Header Search Paths 中添加 /usr/include/libxml2引入头文件YXHTML.h // 获取数据NSData *data = [YXHTML htmlData:@"http://www.cnblogs.com/YouXianMing/"]; // 创建解析器YXHTML *html = [[Y

Android系列之网络(四)----SAX方式解析XML数据

?[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4044170.html 联系方式:[email protected] [系列]Android系列之网络:(持续更新) Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据) Android系列之网络(二)----HTTP请求头与响应头 Androi

IOS解析XML文件

这里使用NSXMLParser来解析,这个是apple自带的xml解析库,有个参考文章:http://www.raywenderlich.com/553/xml-tutorial-for-ios-how-to-choose-the-best-xml-parser-for-your-iphone-project 在Xcode中加入一个xml文件: <?xml version="1.0" encoding="ISO-8859-1"?> <root>

网络相关系列之四:数据解析之SAX方式解析XML数据

一.XML和Json数据的引入: 通常情况下.每一个须要訪问网络的应用程序都会有一个自己的server.我们能够向server提交数据,也能够从server获取数据.只是这个时候就有一个问题,这些数据是以什么格式在网络上传输的呢?一般我们都会在网络上传输一些格式化后的数据,这样的数据会有一定的结构规格和语言,当还有一方收到数据消息后就能够依照同样的结构规格进行解析.从而取出它想要的那部分内容. 在网络上数据传输最经常使用的格式:XML和Json.本文就来学习一下XML数据的解析,Json格式的数

160928、JQuery解析XML数据的demo

用JavaScript解析XML数据是常见的编程任务,JavaScript能做的,JQuery当然也能做.下面我们来总结几个使用JQuery解析XML的例子. 方案1 当后台返回的数据类型是xml对象,如下: 那么,前端jquery解析: 就会得到"成功!"这个文字信息. 方案2 当你要解析一个xml文件对象时候,如xmlfile.xml: $.get("xmlfile.xml",function(xml){ $(xml).find("item"

java解析xml数据(使用jaxp的方式)

解析xml主要有两种方式,一种是dom方式,一种是sax的方式. 1.dom方式是将xml数据作为一个对象生成一个树状结构放入内存中, (1)优点:方便对xml中的数据进行增删改,是W3C推荐的处理xml数据的方式 (2)缺点:这种方式不利于读取比较大的xml文件,容易造成内存溢出. 2.sax方式是采用事件驱动,边读边解析,从上往下,一行一行的解析的方式进行操作 (1)优点:在处理比较大的xml文件时不会造成内存溢出的情况 (2)缺点:不能实现增删改的操作,不是官网标准,但是几乎所有的xml解