亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS開發中常見的解析XML的類庫以及簡要安裝方法

2020-07-26 03:33:04
字體:
來源:轉載
供稿:網友

在iPhone開發中,XML的解析有很多選擇,iOS SDK提供了NSXMLParser和libxml2兩個類庫,另外還有很多第三方類庫可選,例如TBXML、TouchXML、KissXML、TinyXML和GDataXML。問題是應該選擇哪一個呢?
解析 XML 通常有兩種方式,DOM 和 SAX:
DOM解析XML時,讀入整個XML文檔并構建一個駐留內存的樹結構(節點樹),通過遍歷樹結構可以檢索任意XML節點,讀取它的屬性和值。而且通常情況下,可以借助XPath,直接查詢XML節點。
SAX解析XML,是基于事件通知的模式,一邊讀取XML文檔一邊處理,不必等整個文檔加載完之后才采取操作,當在讀取解析過程中遇到需要處理的對象,會發出通知對其進行處理。
一般在iOS平臺下,比較常用的XML解析類庫有如下幾種:
NSXMLParser,http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSXMLParser_Class/Reference/Reference.html ,這是一個SAX方式解析XML的類庫,默認包含在iOS SDK中,使用也比較簡單。
libxml2,http://xmlsoft.org/,是一套默認包含在iOS SDK中的開源類庫,它是基于C語言的API,所以使用起來可能不如NSXML方便。這套類庫同時支持DOM和SAX解析,libxml2的SAX解析方式還是非常酷的,因為它可以邊讀取邊解析,尤其是在從網上下載一個很大的XML文件,就可以一邊下載一邊對已經下載好的內容進行解析,極大的提高解析效率。
TBXML,http://www.tbxml.co.uk/TBXML/TBXML_Free.html,這是一套輕量級的DOM方式的XML解析類庫,有很好的性能和低內存占用,不過它不對XML格式進行校驗,不支持XPath,并且只支持解析,不支持對XML進行修改。
TouchXML,https://github.com/TouchCode/TouchXML,這也是一套DOM方式的XML解析類庫,支持XPath,不支持XML的修改。
KissXML,http://code.google.com/p/kissxml/,這是一套基于TouchXML的XML解析類庫,和TouchXML相比,支持了XML的修改。
TinyXML,http://www.grinninglizard.com/tinyxml/,這是一套小巧的基于C語言的DOM方式進行XML解析的類庫,支持對XML的讀取和修改,不直接支持XPath,需要借助另一個相關的類庫TinyXPath才可以支持XPath。
GDataXML,http://code.google.com/p/gdata-objectivec-client/source/browse/trunk/Source/XMLSupport/,這是一套Google開發的DOM方式XML解析類庫,支持讀取和修改XML文檔,支持XPath方式查詢。
那么對于如何在項目中選擇合適的XML解析類庫呢?網上已經有人對這幾款XML類庫做過分析和對比,可參考《How To Choose The Best XML Parser for Your iPhone Project》http://www.raywenderlich.com/553/how-to-chose-the-best-xml-parser-for-your-iphone-project 一文,基本比較準確和客觀,文中建議:
如果是讀取很小的XML文檔,性能基本上沒有什么差別,不過從調用的方便性來說,建議使用TouchXML、KissXML或GDataXML
如果是需要讀取和修改XML文檔,建議使用KissXML或GDataXML
如果需要讀取非常大的XML文檔,則建議使用libxml2或TBXML
如果你不想去調用第三方類庫,那么使用NSXML也可以

安裝說明
GDataXML
1. 從http://code.google.com/p/gdata-objectivec-client/downloads/list下載“gdata-objective-c client library.”
2. 解壓縮文件,找到Source/XMLSupport,并且將其中的GDataXMLNode.h 和 GDataXMLNode.m文件拖到項目中
3. 選中項目,選中“Build Settings”標簽頁
4. 將Build Settings頁中,頂部的“Basic”標簽切換到“All”
5. 找到“Paths/Header Search Paths”項,并添加“/usr/include/libxml2”到列表中
6. 找到“Linking/Other Linker Flags”項,并添加“-lxml2”到列表中

20151025102314651.png (599×484)

在需要調用GDataXML的代碼文件頭部,加入:

復制代碼 代碼如下:
#import “GDataXMLNode.h”

TouchXML
1. 從https://github.com/TouchCode/TouchXML下載最新TouchXML源碼
2. 解壓后,將其中的Sources目錄下的文件和目錄都拖到項目中
3. 選中項目,選中“Build Settings”標簽頁
4. 將Build Settings頁中,頂部的“Basic”標簽切換到“All”
5. 找到“Paths/Header Search Paths”項,并添加“/usr/include/libxml2”到列表中
6. 找到“Linking/Other Linker Flags”項,并添加“-lxml2”到列表中
在需要調用TouchXML的代碼文件頭部,加入:

復制代碼 代碼如下:
#import “TouchXML.h”

TBXML
1. 從http://www.tbxml.co.uk/TBXML/TBXML_Free.html下載最新TBXML源碼
2. 解壓后,將其中的TBXML.h, TBXML.m, NSDataAdditions.h和NSDataAddtions.m四個文件拖到項目中
3. 添加對libz.dylib類庫的應用
在需要調用TBXML的代碼文件頭部,加入:
復制代碼 代碼如下:
#import “TBXML.h”


使用說明
GDataXML
讀取XML文件,并解析成為DOM文檔對象示例:

復制代碼 代碼如下:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"xml"]; 
NSData *xmlData = [[NSMutableData alloc] initWithContentsOfFile:filePath]; 
NSError *error; 
GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:xmlData options:0 error:&error]; 
if (doc == nil) { return nil; } 
NSLog(@"%@", doc.rootElement); 
[doc release]; 
[xmlData release]; 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产日本欧美在线观看| 成人a级免费视频| 欧美午夜片在线免费观看| 亚洲国产精品久久久久| 成人在线国产精品| 疯狂蹂躏欧美一区二区精品| 久久在线免费视频| 亚洲精品网址在线观看| 国产一区二区日韩| 中文字幕日韩精品有码视频| 久久视频国产精品免费视频在线| 欧美午夜电影在线| 久久久中文字幕| 日本高清不卡的在线| 国产精品第一区| 亚洲激情 国产| 久久精品国产96久久久香蕉| 久久久精品一区二区| 国产一区二区香蕉| 日韩欧美在线视频日韩欧美在线视频| 国产91精品久久久久久久| 日本一区二区在线免费播放| 91sao在线观看国产| 俺去了亚洲欧美日韩| 国产日韩在线亚洲字幕中文| 草民午夜欧美限制a级福利片| 美日韩丰满少妇在线观看| 欧美日韩在线视频首页| 精品久久久久久久久国产字幕| 亚洲第一天堂无码专区| 久久久久免费精品国产| 国产亚洲欧美另类中文| 亚洲变态欧美另类捆绑| 亚洲免费视频观看| 欧美性xxxxx极品| 精品国偷自产在线视频99| 国内精品久久久久伊人av| 国产欧美日韩精品在线观看| 日韩一区视频在线| 91在线精品视频| 日韩高清av一区二区三区| 久久久久久久久久亚洲| 久久久久久久网站| 91网站在线免费观看| 国产精品视频xxx| 九九久久国产精品| 日韩欧美aⅴ综合网站发布| 亚洲精品福利资源站| 欧美精品性视频| 欧美在线性爱视频| 97在线观看视频国产| 亚洲欧美日韩精品久久| 国产精品av网站| 亚洲精品国产欧美| 日韩暖暖在线视频| 久久精品国产欧美亚洲人人爽| 97免费中文视频在线观看| 国产欧美日韩精品丝袜高跟鞋| 欧美重口另类videos人妖| 日本亚洲欧美三级| 欧美国产亚洲精品久久久8v| 欧美国产日韩免费| 国产一区二区丝袜高跟鞋图片| 久久免费国产精品1| 亚洲护士老师的毛茸茸最新章节| 亚洲无线码在线一区观看| 精品毛片网大全| 亚洲码在线观看| 在线精品国产成人综合| 久久777国产线看观看精品| 精品久久久久久久久中文字幕| 精品国产户外野外| 欧美成年人视频网站欧美| 日本一区二区三区在线播放| 国产成人精品久久二区二区91| 国产日韩av高清| 国产亚洲精品一区二区| 国产区亚洲区欧美区| 成人做爽爽免费视频| 中文字幕在线亚洲| 久久国产精品网站| 国产精品揄拍500视频| 亚洲精品自拍视频| 久久天天躁狠狠躁夜夜躁| 日韩动漫免费观看电视剧高清| 久久精品免费电影| 国产+人+亚洲| 日韩一区二区福利| 国产精品欧美日韩一区二区| 日韩精品在线私人| 国产精品国产亚洲伊人久久| 精品福利在线看| 疯狂蹂躏欧美一区二区精品| 亚洲一区二区少妇| 欧美巨乳美女视频| 亚洲国产欧美精品| 亚洲一级一级97网| 亚洲欧美日韩国产中文| 91免费国产网站| 欧美成人免费网| 欧美日韩在线视频观看| 日韩午夜在线视频| 精品成人在线视频| 国产成人综合精品| 在线观看日韩av| 欧美激情一区二区久久久| 国产男女猛烈无遮挡91| 国产有码在线一区二区视频| xvideos成人免费中文版| 一区二区三区久久精品| 亚洲激情在线视频| 久久亚洲综合国产精品99麻豆精品福利| 亚洲第一区中文99精品| 欧美激情乱人伦一区| 成人a在线观看| 亚洲精品视频中文字幕| 在线视频欧美日韩| 91精品免费视频| 欧美做爰性生交视频| 国产在线视频2019最新视频| 成人激情视频免费在线| 中文字幕一精品亚洲无线一区| 国产精品永久免费在线| 亚洲第一男人天堂| 成人黄色在线观看| 九色91av视频| 视频在线观看一区二区| 日韩电影免费观看在线| 亚洲视频在线免费看| 2023亚洲男人天堂| 欧美日韩国产91| 亚洲精品videossex少妇| 国模视频一区二区三区| 久久久亚洲影院你懂的| 午夜精品久久久久久久久久久久久| 中文字幕在线观看亚洲| 亚洲欧美精品中文字幕在线| 国产免费一区二区三区在线能观看| 亚洲乱亚洲乱妇无码| 韩国精品久久久999| 97久久精品人人澡人人爽缅北| 日本精品视频网站| 欧美日韩美女在线观看| 国产亚洲人成a一在线v站| 福利二区91精品bt7086| 亚洲97在线观看| 亚洲人成电影网站| 欧美日韩另类在线| 国产不卡一区二区在线播放| 国产免费一区视频观看免费| 亚洲精品国产suv| 视频直播国产精品| 国产精品久久久久一区二区| 日韩精品黄色网| 懂色av一区二区三区| 日韩欧美亚洲综合| 欧美精品xxx| 国产亚洲精品久久| 国产精品免费视频xxxx| 久久精品国产精品| 欧美老女人bb| 久青草国产97香蕉在线视频| 国产成人精品999| 国产视频999|