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

在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解析類庫有如下幾種:

安裝說明
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”到列表中

clip_image002

在需要調用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];


發佈了27 篇原創文章 · 獲贊 8 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章