成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

移動開發 iOS
本文介紹的是詳解iOS平臺XML解析類庫對比和安裝說明,主要介紹XML解析類庫,我們先來看內容。

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

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”到列表中

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

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

  1. #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的代碼文件頭部,加入:

  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四個文件拖到項目中

3. 添加對libz.dylib類庫的應用

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

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

責任編輯:zhaolei 來源: 博客園
相關推薦

2011-08-05 16:18:32

iOS XML 解析

2011-08-04 18:39:32

iOS XML

2010-01-27 10:22:53

C++基類

2018-05-13 16:00:22

主播APP視頻

2011-08-22 10:32:32

SQL Server數XML節點XML塊

2010-01-06 15:30:51

JSON和XML

2011-08-17 14:20:21

IOS開發GraphicsCon

2011-08-03 09:26:49

2013-07-21 18:04:22

ASIHttpRequiOS開發

2022-04-11 08:25:37

XMLSQL語句Mybatis

2009-12-16 16:32:45

VS2008安裝部署

2009-03-31 13:12:30

解析XMLJava

2019-02-11 08:48:07

XMLJSON前端

2010-01-25 17:28:18

Android類庫

2013-04-08 10:27:59

iOSXcode制作靜態庫

2009-12-24 15:42:01

ADO類庫

2010-07-29 09:18:25

JavaFXFlexSilverlight

2010-09-09 16:17:10

PHPXMLXML DOM

2009-12-02 16:33:09

家用路由器安裝說明

2009-12-31 14:18:46

ADO.NET類庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产91在线观看 | www.奇米| 午夜一区 | 日韩欧美一区在线 | 亚洲精品中文字幕在线 | 羞羞视频网站免费观看 | 亚洲欧美中文字幕 | 国产乱码精品一区二区三区五月婷 | 亚洲 自拍 另类 欧美 丝袜 | 精品国产成人 | 欧美日韩在线一区二区三区 | 欧美精品v国产精品v日韩精品 | 羞视频在线观看 | 91秦先生艺校小琴 | 欧美日韩视频一区二区 | 成av在线 | 国户精品久久久久久久久久久不卡 | 日韩综合在线 | 天天操天天摸天天干 | 国产在线精品一区二区三区 | 日韩精品免费一区二区在线观看 | 中文字幕在线不卡 | 中文字幕国产精品视频 | 99在线观看| 欧美区日韩区 | 久久高清 | 欧美激情一区二区三区 | 国产成人免费视频网站高清观看视频 | 国产91色在线 | 亚洲 | 国产日韩精品在线 | 人成精品 | 干干干日日日 | 中文字幕男人的天堂 | 色婷婷综合成人av | 久久99精品久久久久久 | 国产精品一区在线播放 | 日韩欧美视频网站 | 国产日韩精品一区 | 久久久久亚洲精品 | 亚洲综合二区 | 99久久久久久99国产精品免 |