欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

詳解iOS平臺XML解析類庫對比和安裝說明

系統(tǒng) 2498 0

?

詳解 iOS 平臺 XML 解析類庫對比和安裝說明是本文要介紹的內(nèi)容。不多說,先來看內(nèi)容。

iPhone 開發(fā)中, XML 的解析有很多選擇, iOS? SDK提供了NSXMLParser和libxml2兩個類庫,另外還有很多第三方類庫可選,例如TBXML、TouchXML、KissXML、TinyXML和GDataXML。問題是應(yīng)該選擇哪一個呢?

解析? XML? 通常有兩種方式,DOM 和 SAX:

DOM解析 XML 時,讀入整個 XML 文檔并構(gòu)建一個駐留內(nèi)存的樹結(jié)構(gòu)(節(jié)點(diǎn)樹),通過遍歷樹結(jié)構(gòu)可以檢索任意 XML 節(jié)點(diǎn),讀取它的屬性和值。而且通常情況下,可以借助XPath,直接查詢 XML 節(jié)點(diǎn)。

SAX解析XML,是基于事件通知的模式,一邊讀取XML文檔一邊處理,不必等整個文檔加載完之后才采取操作,當(dāng)在讀取解析過程中遇到需要處理的對象,會發(fā)出通知對其進(jìn)行處理。

一般在iOS平臺下,比較常用的XML解析類庫有如下幾種:

NSXMLParser,http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSXMLParser_Class/Reference/Reference.html ,這是一個SAX方式解析XML的類庫,默認(rèn)包含在iOS SDK中,使用也比較簡單。

libxml2,http://xmlsoft.org/,是一套默認(rèn)包含在iOS SDK中的開源類庫,它是基于C語言的API,所以使用起來可能不如NSXML方便。這套類庫同時支持DOM和SAX解析,libxml2的SAX解析方式還是非??岬?,因?yàn)樗梢赃呑x取邊解析,尤其是在從網(wǎng)上下載一個很大的XML文件,就可以一邊下載一邊對已經(jīng)下載好的內(nèi)容進(jìn)行解析,極大的提高解析效率。

TBXML,http://www.tbxml.co.uk/TBXML/TBXML_Free.html,這是一套輕量級的DOM方式的XML解析類庫,有很好的性能和低內(nèi)存占用,不過它不對XML格式進(jìn)行校驗(yàn),不支持XPath,并且只支持解析,不支持對XML進(jìn)行修改。

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方式進(jìn)行XML解析的類庫,支持對XML的讀取和修改,不直接支持XPath,需要借助另一個相關(guān)的類庫TinyXPath才可以支持XPath。

GDataXML,http://code.google.com/p/gdata-objectivec-client/source/browse/trunk/Source/XMLSupport/,這是一套Google開發(fā)的DOM方式XML解析類庫,支持讀取和修改XML文檔,支持XPath方式查詢。

那么對于如何在項(xiàng)目中選擇合適的XML解析類庫呢?網(wǎng)上已經(jīng)有人對這幾款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 一文,基本比較準(zhǔn)確和客觀,文中建議:

如果是讀取很小的XML文檔,性能基本上沒有什么差別,不過從調(diào)用的方便性來說,建議使用TouchXML、KissXML或GDataXML

如果是需要讀取和修改XML文檔,建議使用KissXML或GDataXML

如果需要讀取非常大的XML文檔,則建議使用libxml2或TBXML

如果你不想去調(diào)用第三方類庫,那么使用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文件拖到項(xiàng)目中

3. 選中項(xiàng)目,選中“Build Settings”標(biāo)簽頁

4. 將Build Settings頁中,頂部的“Basic”標(biāo)簽切換到“All”

5. 找到“Paths\Header Search Paths”項(xiàng),并添加“/usr/include/libxml2”到列表中

6. 找到“Linking\Other Linker Flags”項(xiàng),并添加“-lxml2”到列表中

詳解iOS平臺XML解析類庫對比和安裝說明

在需要調(diào)用GDataXML的代碼文件頭部,加入:

    
  1. #import?“GDataXMLNode.h”?

TouchXML

1. 從https://github.com/TouchCode/TouchXML下載最新TouchXML源碼

2. 解壓后,將其中的Sources目錄下的文件和目錄都拖到項(xiàng)目中

3. 選中項(xiàng)目,選中“Build Settings”標(biāo)簽頁

4. 將Build Settings頁中,頂部的“Basic”標(biāo)簽切換到“All”

5. 找到“Paths\Header Search Paths”項(xiàng),并添加“/usr/include/libxml2”到列表中

6. 找到“Linking\Other Linker Flags”項(xiàng),并添加“-lxml2”到列表中

在需要調(diào)用TouchXML的代碼文件頭部,加入:

    
  1. #import?“TouchXML.h”?

TBXML

1. 從http://www.tbxml.co.uk/TBXML/TBXML_Free.html下載最新TBXML源碼

2. 解壓后,將其中的TBXML.h, TBXML.m, NSDataAdditions.h和NSDataAddtions.m四個文件拖到項(xiàng)目中

3. 添加對libz.dylib類庫的應(yīng)用

在需要調(diào)用TBXML的代碼文件頭部,加入:

    
  1. #import?“TBXML.h”?

使用說明

GDataXML

讀取 XML 文件,并解析成為DOM文檔對象示例:

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

小結(jié):詳解 iOS 平臺 XML 解析類庫對比和安裝說明的內(nèi)容介紹完了,希望本文對你有所幫助!

詳解iOS平臺XML解析類庫對比和安裝說明


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 99热久久国产综合精品久久国产 | 成人羞羞网站 | 成人国产精品免费 | 亚洲欧洲成人 | 在线国产一区二区 | 精品一区二区三区在线观看 | 一级做一级爱a做片性视频视频 | 午夜影院| 色噜噜狠狠狠狠色综合久 | 久草中文网| 男女做www免费高清视频 | 亚洲最新色 | 欧美特黄a级高清免费看片 欧美精品一二区 | 国产精品视频二区不卡 | 成人黄色一级视频 | 久久国产高清视频 | 又黄又爽的成人免费网站 | 欧洲成人综合网 | 国产精品美女久久久久aⅴ国产馆 | 欧美人成在线 | 国产视频日韩 | 久久中文字幕不卡一二区 | 日本黄色激情 | 日本一道本视频 | 国产一级大片在线观看 | 欧美日韩在线视频不卡一区二区三区 | 97视频免费播放观看在线视频 | 日本黄色大片免费看 | 日本高清色视频www 99视频在线 | 91麻豆精品国产91久久久更新时间 | 特级av毛片免费观看 | 欧美日韩成人一区二区 | 欧美精品成人a多人在线观看 | 欧洲亚洲精品久久久久 | 日本高清在线中文字幕网 | 久久久精品日本 | 乱码中文字幕人成在线 | 久久精品中文 | 日本在线播放一区二区 | 2022国产成人精品福利网站 | 亚洲一区 中文字幕 |