GDataXMLNode:xml解析库

一、GdataxMLNode说明

GdataxMLNode是Google提供的用于XML数据处理的类集。该类集对libxml2--DOM处理方式进行了封装,能对较小或中等的xml文档进行读写操作且支持XPath语法。

使用方法
1、获取 GDataXMLNode.h/m文件,将 GDataXMLNode.h/m文件添加到工程中(ps:从下载下来的工程中直接搜索 GDataXMLNode.h/m就行了)
2、向工程中增加“libxml2.dylib”库
3、在工程的“Build Settings”页中找到“Header Search Path”项,添加/usr/include/libxml2"到路径中
4、因为GdataxMLNode.h/m是用MRC写的所以需要配置一下:

可以在Build Phases中的Compile Sources中加入编译标记-fno-objc-arc,确实可行,但是文件好多,这种方式适合文件比较少的情况,文件多了难道我们要一个一个加嘛,这 时候我们可以借助一个工具xproj,这是一个脚本,可以很方便的给某个文件夹内的文件添加编译标记,具体使用方法我们看项目主页就行了,既可以给ARC 项目添加MRC标记(-fno-objc-arc),也可以给MRC项目添加ARC标记(-fobjc-arc)。



5、添加“GdataxMLNode.h”文件到头文件中,如工程能编译通过,则说明GdataxMLNode添加成功
二、GdataxMLNode示例
示例:
[html] view plain copy
  1. <root>
  2. namevalue="wusj"/>
  3. age>24</>
对此xml文件进行解析
  1. Nsstring*xmlPath=[[NSBundlemainBundle]pathForResource:@"test"ofType:@"xml"];
  2. Nsstring*xmlString=[NsstringstringWithContentsOfFile:xmlPathencoding:NSUTF8StringEncodingerror:nil];
  3. GdataxMLDocument*xmlDoc=[[GdataxMLDocumentalloc]initWithXMLString:xmlStringoptions:0error:nil];
  4. GdataxMLElement*xmlEle=[xmlDocrootElement];
  5. NSArray*array=[xmlElechildren];
  6. NSLog(@"count:%d",[arraycount]);
  7. for(inti=0;i<[arraycount];i++){
  8. GdataxMLElement*ele=[arrayobjectAtIndex:i];
  9. //根据标签名判断
  10. if([[elename]isEqualToString:@"name"]){
  11. //读标签里面的属性
  12. NSLog(@"name-->%@",[[eleattributeForName:@"value"]stringValue]);
  13. }else{
  14. //直接读标签间的String
  15. NSLog(@"age-->%@",[elestringValue]);
  16. }
  17. }


运行结果:


三、GdataxMLNode方法小结
[html] view plain copy
  1. >
  2. />
  3. >

最终的数据读出都是在GdataxMLElement对象中读出的,以下方法均为GdataxMLElement类的方法
1、name方法,取标签名 (name标签名称“name”)
2、attributeForName: 取属性结点 再调stringValue即可取到属性值 ( name标签中的value属性)
3、stringValue: 取标签间的字符串值 ( age间的24)

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念