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

在iPhone開發中,XML的解析有不少選擇,iOS SDK提供了NSXMLParser和libxml2兩個類庫,另外還有不少第三方類庫可選,例如TBXML、TouchXML、KissXML、TinyXML和GDataXML。問題是應該選擇哪個呢?html

解析 XML 一般有兩種方式,DOM 和 SAX:ios

  • DOM解析XML時,讀入整個XML文檔並構建一個駐留內存的樹結構(節點樹),經過遍歷樹結構能夠檢索任意XML節點,讀取它的屬性和值。並且一般狀況下,能夠藉助XPath,直接查詢XML節點。
  • SAX解析XML,是基於事件通知的模式,一邊讀取XML文檔一邊處理,沒必要等整個文檔加載完以後才採起操做,當在讀取解析過程當中遇到須要處理的對象,會發出通知對其進行處理。

通常在iOS平臺下,比較經常使用的XML解析類庫有以下幾種:git

安裝說明
GDataXML

1. 從http://code.google.com/p/gdata-objectivec-client/downloads/list下載「gdata-objective-c client library.」github

2. 解壓縮文件,找到Source\XMLSupport,而且將其中的GDataXMLNode.h 和 GDataXMLNode.m文件拖到項目中objective-c

3. 選中項目,選中「Build Settings」標籤頁app

4. 將Build Settings頁中,頂部的「Basic」標籤切換到「All」iphone

5. 找到「Paths\Header Search Paths」項,並添加「/usr/include/libxml2」到列表中post

6. 找到「Linking\Other Linker Flags」項,並添加「-lxml2」到列表中性能

clip_image002

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

#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];

相關文章
相關標籤/搜索