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];
时间: 08-06

XML解析Gdata的相关文章

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 解析方法有两种:SAX , DOM. SAX 不用借助第三方,在解析过程中逐行解析.(NSXMLParser,需要实现代理),具体步骤: 1.获取文件路径. 2.创建 NSXMLParser 对象. 3.遵守协议,设置代理. 4.实现代理方法 1>- (void)parserDidStartDocument:  ---- 开始解析 2>- (void)parserDidEndDocument: ----解析结束 3>- (void)parser:didStartEleme

XML解析

3.1 XML简单介绍 (1) XML:可扩展标记语言 a.语法 b.XML文档的三部分(声明.元素和属性) c.其它注意点(注意不能交叉包含.空行换行.XML文档只能有一个根元素等) (2) XML解析 a.XML解析的两种方式 001 SAX:从根元素开始,按顺序一个元素一个元素的往下解析,可用于解析大.小文件 002 DOM:一次性将整个XML文档加载到内存中,适合较小的文件 b.解析XML的工具 001 苹果原生NSXMLParser:使用SAX方式解析,使用简单 002 第三方框架 l

JAVASE02-Unit012: Unit07: XML语法 、 XML解析

Unit07: XML语法 . XML解析 emplist.xml <?xml version="1.0" encoding="UTF-8"?> <list> <emp id="1"> <name>张三</name> <age>34</age> <gender>男</gender> <salary>3000</salary

iOS -数据库网络之xml解析

XML文件有2种解析方式 1.基于文档(document) 2.基于事件(sax) 1.IOS中XML文件获取 首先要将XML导入工程中 在ViewController的按钮事件中,代码如下: //获取xml完整路径 NSString * path=[[NSBundle mainBundle] [email protected]"xml文件名称" ofType:@"xml"]; //读取文件到内存 NSData* data=[NSData dataWithConte

XML解析(转)

非原创,转载自http://my.oschina.net/khakiloveyty/blog/396671 xml解析主要可以使用CData,libxml2以及NSXMLParser,以下对各个方法给出了相应的例子: 1.CDataXML: 1.1.创建FKBook类 #import <Foundation/Foundation.h> @interface FKBook : NSObject @property (nonatomic , assign) NSInteger bookID; @p

iOS网络数据解析之XML解析-GDataXML

GDataXML 第三方xml解析框架 DOM解析:一次性将整个XML文档加载进内存,比较适合解析小文件 GDataXML中常用的类 GDataXMLDocument: 代表整个XML文档 GDataXMLElement: 代表文档中的每个元素 使用attributeForName:方法可以获得属性值 要使用GDataXML,先要对项目进行一些配置.1>导入libxml2动态库targets--Build Phases--link Binary With Libraries 2>设置libxm

ios之json,xml解析

JSON解析步骤: 1.获取json文件路径 NSString*path = [[NSBundle mainBundle] pathForResource:@"Teacher"ofType:@"json"]; 2.读取文件中的data NSData *data = [NSData dataWithContentsOfFile:path]; 3.把data转化为可变数组或者可变字典 是字典还是数组要看json最外层数据是什么.NSJSONSerialization是重