XML解析Gdata

做iOS开发一直都是用的Jason解析 最近一家公司是用的XML解析 好久都没有用过了 有些陌生了 今天来仔细的描述一下XML解析! 说到XML解析就一定要描述两个概念 一个 叫DOM 一个叫SAX SAX是Simple API for XML的缩写,它并不是由W3C官方所提出的标准,可以说是“民间”的事实标准。实际上,它是一种社区性质的讨论产物。虽然如此,在XML中对SAX的应用丝毫不比DOM少,几乎所有的XML解析器都会支持它。SAX是一种轻量型的方法,它是事件驱动的,也就是说,它并不需要读入整个文档,而文档的读入过程也就是SAX的解析过程。所谓事件驱动,是指一种基于回调(callback)机制的程序运行方法。还有就是DOM Dom解析是一口把东西吃进内存,我们需要读入整个的XML文档,然后在内存中创建DOM树,生成DOM树上的每个Node对象,当文档比较小的时候,这不会造成什么问题,但是一旦文档大起来,处理DOM就会变得相当费时费力。特别是其对于内存的需求,也将是成倍的增长,以至于在某些应用中使用DOM是一件很不划算的事,所以要解析大的东西就要用Sax,不过现在的设备性能越来越好,感觉差别应该不回太大,当然了 只是我个人这么认为,做开发的,一定要把用户的体验放在第一位,所以最好还是按照适合的方法来解决吧,好了,废话少说 上代码!

 GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:responseObject options:0 error:nil];

        // 获得文档的根元素 -- doc元素
        GDataXMLElement *root = doc.rootElement;

        // 获得根元素里面的body元素
        NSArray *elements = [root elementsForName:@"body"];

        // 遍历所有的body元素
        for (GDataXMLElement *videoElement in elements)
        {
            NSArray *arr=[videoElement elementsForName:@"mi_user_addresss"];
            NSLog(@"%ld",arr.count);
            for (GDataXMLElement *ement in arr)
            {
                NSArray *arr=[ement elementsForName:@"mi_user_address"];

                for (GDataXMLElement *Element in arr) {

                    //取出每一个节点的元素的值
                    self.adress = [[WYAdress alloc] init];
                    GDataXMLElement *address=[[Element elementsForName:@"address"]objectAtIndex:0];
                    self.adress.address =[address stringValue];
//这个按照元素里面的属性取出来的值
self.id = [Element attributeForName:@"id"].stringValue.intValue;

顺便提一下还可以用这种方法来取

// 先获取路径然后再获取节点
NSString *path=@"/doc/body";
    //2.获取body节点
    GDataXMLElement *bodyElement=[rootElement nodesForXPath:path error:nil][0];
时间: 2024-10-12 20:40:07

XML解析Gdata的相关文章

XML解析GData、XMLParser

---恢复内容开始--- /* <tweet> <id>6462192</id> <portrait> http://static.oschina.net/uploads/user/587/1175932_50.jpg?t=1418648003000 </portrait> <author> <![CDATA[ fywtat ]]> </author> <authorid>1175932</a

iOS-Gdata XML解析配置和简单使用

简单介绍使用废话少说直接上图就能看明白... 导入libxml2,使用第三方AFNetworking网络请求,第三方XML解析GData GData需要的配置 Build Settings 里搜索,添加如下 如果是ARC ,需要加上 -fno-objc-arc 首先找一个xml网址使用AFNetworking请求得到NSData数据 先打开火狐浏览器看xml的层次结构(复制网址在火狐浏览器上打开) 使用GData解析,记住一层一层解析

一个ios工程相关的配置小问题解决介绍,gdata xml解析相关

在我们ios的开发中gdataxml是一个常用的开源实现,很多第三方的库在实现里也会加入它的源码.我们在使用此类库或者直接使用gdataxml库时,切记要在工程中引入libxml2这个框架,否则编译会报错,提示类似下面: Undefined symbols for architecture armv7: "_xmlDocDumpMemory", referenced from: xxx 引入该框架问题即可解决. 一个ios工程相关的配置小问题解决介绍,gdata xml解析相关,码迷,

网络之XML解析-GData

GDataXML是一套Google使用Objective-C开发的DOM方式XML解析类库,支持读取和修改XML文档,支持XPath方式查询, GDataXML 是 iOS 下的一款轻量级 XML 解析器.它与C#的XmlDocument类似. 一.GData配置 1.将类引入项目中,添加libxml2.dylib 2.在Build Phases的Compile Sources中找到GDataXMLNode.m添加-fno-objc-arc 3.进入Build Settings,搜索Header

IOS之XML解析

IOS之XML解析 1.XML格式 <?xml version="1.0" encoding="utf-8" ?> <root> <systemConfig> <CityName>北京</CityName> <CityCode>201</CityCode> <ParentCityCode> 0</ParentCityCode> <areaCode>

iOS开发之XML解析

iOS开发之XML解析 1.XML格式 <?xml version="1.0" encoding="utf-8" ?> 表示XML文件版本, 内部文本使用的编码 <root> 表示根节点 <CityName>北京</CityName>  一个结点, CityName是结点名, 北京结点值 <Item key="1" value="A"></Item>  

IOS开发之XML解析以及下拉刷新上拉加载更多的分享

IOS开发之XML解析 1.XML格式 <?xml version="1.0" encoding="utf-8" ?> 表示XML文件版本, 内部文本使用的编码 <root> 表示根节点 <CityName>北京</CityName>  一个结点, CityName是结点名, 北京结点值 <Item key="1" value="A"></Item>  

JSON&&XML以及XML解析的常用方法

JSONJSON(JavaScript Object Notation)一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.可在不同平台之间进行数据交换.JSON采用兼容性很高的.完全独立于语言文本格式,同时也具备类似于C语言的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)体系的行为.这些特性使JSON成为理想的数据交换语言.  XML扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件

XML解析以及下拉刷新上拉加载的一些基本使用

---恢复内容开始--- IOS开发之XML解析 1.XML格式 <?xml version="1.0" encoding="utf-8" ?> 表示XML文件版本, 内部文本使用的编码 <root> 表示根节点 <CityName>北京</CityName>  一个结点, CityName是结点名, 北京结点值 <Item key="1" value="A"><