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_p_w_picpath002
在需要調用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
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];
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章