数据解析

json和xml

开发中出现频率:json 95%   xml 5%

json(对于xml)  轻便,在服务器到客服端传输速率高,信息的冗余(没有必要的重复)低  ,缺点就是可读性低(但是可以通过第三方的工具解决)

xml(对于json)可读性      缺点:信息的冗余度高,在服务器到客服端传输速率低


xml解析

常见:plist文件,XIB,网易新闻,新浪新闻


解析xml常用库:GData (第三类)


整个xml文件可以看成一个树

<root > </root>   <book   id="1" language="ch"> </book>  这些东西在xml中叫节点,xml文件中的第一个节点就根节点  , id和language叫节点属性


一.如何使用GData

底层使用系统的libxml2库, 使用的时候添加libxml2


(1)导入GData库

(2)设置头文件搜索路径  

Build Setting--->header  search Paths

双击后,点加号

添加   /usr/include/libxml2


//libxml2是系统库,需要到系统的目录下找到。


(3)添加libxml二进制库

Build Phases ---> Link Binary

添加 libxml2.dylib

(4)如果是arc的工程

Build Phases ---> Compile Source File

GDataXmlNode.m 禁止ARC:   -fno-objc-arc

二.常用方法

GDataXMLNode

//获取当前节点的值

- (NSString *)stringValue;

//获取当前节点子子节点的个数

- (NSUInteger)childCount;

//获取子节点数组

- (NSArray *)children;

//根据索引获取子节点

- (GDataXMLNode *)childAtIndex:(unsigned)index;


GDataXMLElement : GDataXMLNode

//根据子节点名字获取所有的节点名为name的子节点数组

- (NSArray *)elementsForName:(NSString *)name;

//获取节点的属性

- (NSArray *)attributes;

//根据属性名获取属性节点

- (GDataXMLNode *)attributeForName:(NSString *)name;


GDataXMLDocument //XML节点树

//创建文档节点

- (id)initWithData:(NSData *)data options:(unsigned int)mask error:(NSError **)error;

//获取跟节点

- (GDataXMLElement *)rootElement;

//根据xpath 语法 获取 指定的节点数组

- (NSArray *)nodesForXPath:(NSString *)xpath error:(NSError **)error;


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值