加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

GDataXMLNode:xml解析库

发布时间:2020-12-16 08:40:44 所属栏目:百科 来源:网络整理
导读:一、GDataXMLNode说明 GDataXMLNode是Google提供的用于XML数据处理的类集。该类集对libxml2--DOM处理方式进行了封装,能对较小或中等的xml文档进行读写操作且支持XPath语法。 使用方法: 1、获取 GDataXMLNode.h/m文件,将 GDataXMLNode.h/m文件添加到工程中
一、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文件进行解析
[cpp] view plain copy
  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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读