尊龙游戏旗舰厅官网
收集整理的这篇文章主要介绍了
gdataxml解析xml文档
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
2019独角兽企业重金招聘python工程师标准>>>
本文章转载自 唐韧_ryan
的csdn : http://blog.csdn.net/ryantang03/article/details/7868246
在ios平台上进行xml文档的解析有很多种方法,在sdk里面有自带的解析方法,但是大多情况下都倾向于用第三方的库,原因是解析效率更高、使用上更方便,关于ios平台各种解析xml库的优缺点分析,可以看下这篇文章:http://www.raywenderlich.com/553/how-to-chose-the-best-xml-parser-for-your-iphone-project
这里主要介绍一下由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 binary with libraries,点击加号搜索libxml2并将这个库添加到工程,如图:
接下来再进入build settings,在搜索框中搜索head search path,然后双击并点击 按钮添加/usr/include/libxml2,如图:
接下来再搜索框中搜索other linker flags,同样的方式添加-lxml2,如图:
到这里,添加和配置的工作就完成了(是有点麻烦),接下来就看如何使用了:
首先在工程中新建一个xml文件,作为我们要解析的对象,新建方法是在工程中新建一个empty的文件,命名为users.xml,然后添加内容:
[html] view plain copy
xml version="1.0" encoding="utf-8"?> <users> <user id="001"> <name>ryanname> <age>24age> user> <user id="002"> <name>tangname> <age>23age> user> users> 接下来就可以开始解析了,在需要解析的文件中引入头文件:#import"gdataxmlnode.h"
我是新建的一个empty工程,所以直接在appdelegate.m中使用,代码如下:
[cpp] view plain copy
- (bool)application:(uiapplication *)application didfinishlaunchingwithoptions:(nsdictionary *)launchoptions { self.window = [[[uiwindowalloc] initwithframe:[[uiscreen mainscreen] bounds]] autorelease]; // override point for customization after application launch. self.window.backgroundcolor = [uicolorwhitecolor]; [self.windowmakekeyandvisible]; //获取工程目录的xml文件 nsstring *filepath = [[nsbundle mainbundle] pathforresource:@"users" oftype:@"xml"]; nsdata *xmldata = [[nsdata alloc] initwithcontentsoffile:filepath]; //使用nsdata对象初始化 gdataxmldocument *doc = [[gdataxmldocument alloc] initwithdata:xmldata options:0error:nil]; //获取根节点(users) gdataxmlelement *rootelement = [doc rootelement]; //获取根节点下的节点(user) nsarray *users = [rootelement elementsforname:@"user"]; for (gdataxmlelement *user in users) { //user节点的id属性 nsstring *userid = [[user attributeforname:@"id"] stringvalue]; nslog(@"user id is:%@",userid); //获取name节点的值 gdataxmlelement *nameelement = [[user elementsforname:@"name"] objectatindex:0]; nsstring *name = [nameelement stringvalue]; nslog(@"user name is:%@",name); //获取age节点的值 gdataxmlelement *ageelement = [[user elementsforname:@"age"] objectatindex:0]; nsstring *age = [ageelement stringvalue]; nslog(@"user age is:%@",age); nslog(@"-------------------"); } returnyes; } 编译执行在控制台输出结果如下:
转载于:https://my.oschina.net/u/1271699/blog/164100
总结
以上是尊龙游戏旗舰厅官网为你收集整理的gdataxml解析xml文档的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得尊龙游戏旗舰厅官网网站内容还不错,欢迎将尊龙游戏旗舰厅官网推荐给好友。