数据解析
2016-01-11 17:28
393 查看
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;
开发中出现频率: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;
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 我是运营,我没有假期
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- DB2数据库的安装
- C#实现把指定数据写入串口
- “传奇”图象数据存储方式
- 修复mysql数据库
- 浅析SQL数据操作语句
- SQLServer 数据导入导出的几种方法小结
- MySQL数据备份之mysqldump的使用详解
- C#实现窗体间传递数据实例
- 给你的数据库文件减肥
- Oracle数据更改后出错的解决方法
- Oracle数据库数据丢失恢复的几种方法总结
- C#将Sql数据保存到Excel文件中的方法