生活随笔
收集整理的這篇文章主要介紹了
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>Ryan</name>?? ????????<age>24</age>?? ????</User>?? ????<User?id="002">?? ????????<name>Tang</name>?? ????????<age>23</age>?? ????</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文档的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。