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

使用GDataXML解析XML文档

发布时间:2020-12-16 00:35:13 所属栏目:百科 来源:网络整理
导读:在IOS平台上进行XML文档的解析有很多种方法,在SDK里面有自带的解析方法,但是大多情况下都倾向于用第三方的库,原因是解析效率更高、使用上更方便 这里主要介绍一下由Google提供的一种在IOS平台上进行XML解析的开源库 GDataXML ,可以到 http://code.google

在IOS平台上进行XML文档的解析有很多种方法,在SDK里面有自带的解析方法,但是大多情况下都倾向于用第三方的库,原因是解析效率更高、使用上更方便

这里主要介绍一下由Google提供的一种在IOS平台上进行XML解析的开源库GDataXML,可以到

http://code.google.com/p/gdata-objectivec-client/source/browse/trunk/Source/XMLSupport/下载源码,下载下来后进入文件夹找到XMLSupport文件夹,将里面的GDataXMLNode.h和GDataXMLNode.m文件拖拽到项目中新建的文件夹即可(我这里是建的GDataXML文件夹),注意要选中复制文件到项目中而不是只是引用,

如图:

然后就是对工程进行一些配置,点击工程根目录然后点击左边的Target,进入Build Phases,然后点击第三个Link binarywith libraries,点击加号搜索libxml2并将这个库添加到工程,如图:

接下来再进入BuildSettings,在搜索框中搜索HeaderSearch Path,然后双击并点击+按钮添加/usr/include/libxml2,如图:

接下来再搜索框中搜索Other linker flags,同样的方式添加-lxml2,如图:

到这里,添加和配置的工作就完成了(是有点麻烦),接下来就看如何使用了:

首先在工程中新建一个xml文件,作为我们要解析的对象,新建方法是在工程中新建一个Empty的文件,命名为users.xml,然后添加内容:

1.<?xmlversion="1.0"encoding="utf-8"?>

2.<Users>

3.<Userid="001">

4.<name>Ryan</name>

5.<age>24</age>

6.</User>

7.<Userid="002">

8.<name>Tang</name>

9.<age>23</age>

10. </User>

11. </Users>

接下来就可以开始解析了,在需要解析的文件中引入头文件:

#import "GDataXMLNode.h"

我是新建的一个Empty工程,所以直接在AppDelegate.m中使用,代码如下:

1.-(BOOL)application:(UIApplication*)applicationdidFinishLaunchingWithOptions:(NSDictionary*)launchOptions

2.{

3.self.window=[[[UIWindowalloc]initWithFrame:[[UIScreenmainScreen]bounds]]autorelease];

4.//Overridepointforcustomizationafterapplicationlaunch.

5.self.window.backgroundColor=[UIColorwhiteColor];

6.[self.windowmakeKeyAndVisible];

7.

8.//取工程目xml文件

9.NSString*filePath=[[NSBundlemainBundle]pathForResource:@"users"ofType:@"xml"];

10.NSData*xmlData=[[NSDataalloc]initWithContentsOfFile:filePath];

11.

12.//使用NSData象初始化

13.GDataXMLDocument*doc=[[GDataXMLDocumentalloc]initWithData:xmlDataoptions:0 error:nil];

14.

15.//取根点(Users

16.GDataXMLElement*rootElement=[docrootElement];

17.

18.//取根点下的点(User

19.NSArray*users=[rootElementelementsForName:@"User"];

20.

21.for(GDataXMLElement*userinusers){

22.//User点的id属性

23.NSString*userId=[[userattributeForName:@"id"]stringValue];

24.NSLog(@"Useridis:%@",userId);

25.

26.//name点的

27.GDataXMLElement*nameElement=[[userelementsForName:@"name"]objectAtIndex:0];

28.NSString*name=[nameElementstringValue];

29.NSLog(@"Usernameis:%@",name);

30.

31.//age点的

32.GDataXMLElement*ageElement=[[userelementsForName:@"age"]objectAtIndex:0];

33.NSString*age=[ageElementstringValue];

34.NSLog(@"Userageis:%@",age);

35.NSLog(@"-------------------");

36.}

37.

38.[docrelease];

39.[xmlData release];

40.

41.returnYES;

}

(编辑:李大同)

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

    推荐文章
      热点阅读