标签:
【XML语法】
【1、基本术语】
标签/节点:
格式:<节点名> 节点值 </节点名>
如: <root>books</root>
其中root为节点名,books为节点值
根节点:最外层的节点称为根节点
子节点:节点中包含的其它节点都称为该节点的子节点,
一级子节点也称为直接子节点。
属性节点:
如:<Item key="1" value="报纸"> </Item>
其中 key="1" 为属性节点
属性: key="1"
属性名: key
属性值: "1"
【2、xpath语法】
XPath即为XML路径语言,它是一种用来确定XML文档中某部分位置的语
言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。
XPath 使用路径表达式来选取XML文档中的节点或者节点集。这些路径
表达式和我们在常规的电脑文件系统中看到的表达式非常相似。路径表达式是
从一个XML节点(当前的上下文节点)到另一个节点、或一组节点的书面步骤
顺序。
【XML解析】
1.系统类NSXMLParser 比较繁琐
2.第三方开源库 GData 常用
底层使用系统的libxml2库, 使用的时候添加libxml2
(1)导入GData库
(2)设置头文件搜索路径
Build Setting--->header search Path
添加 /usr/include/libxml2
(3)添加libxml二进制库
Build Phases ---> Link Binary
添加 libxml2.dylib
(4)如果是arc的工程
Build Phases ---> Compile Source File
GDataXmlNode.m(非arc的:-fno-objc-arc)
GData 第三方库 有两种方式解析
1、获取根节点所有元素 遍历所有的子节点
2、使用xpath语法
http://10.0.8.8/sns/my/user_list.php?format=xml&page=1&number=100
GDataXMLNode : NSObject
//获取当前节点的值
- (NSString *)stringValue;
//获取当前节点子节点的个数
- (NSUInteger)childCount;
//获取子节点数组
- (NSArray *)children;
//根据索引获取子节点
- (GDataXMLNode *)childAtIndex:(unsigned)index;
GDataXMLElement : GDataXMLNode
//根据节点名字获取所有的节点名为name的节点数组
- (NSArray *)elementsForName:(NSString *)name;
//获取节点的属性
- (NSArray *)attributes;
//根据属性名获取属性节点
- (GDataXMLNode *)attributeForName:(NSString *)name;
GDataXMLDocument : NSObject
//创建文档树
- (id)initWithData:(NSData *)data encoding:(NSStringEncoding)encoding error:(NSError **)error;
//获取跟节点
- (GDataXMLElement *)rootElement;
//根据xpath 语法 获取 指定的节点数组
- (NSArray *)nodesForXPath:(NSString *)xpath error:(NSError **)error;
标签:
原文地址:http://www.cnblogs.com/LiRenee/p/5011514.html