国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS中XML的類庫安裝詳細教程

2020-02-19 15:56:13
字體:
來源:轉載
供稿:網友

  今天小編給大家分享一篇關于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”到列表中

20151025102314651.png (599×484)

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

  以上就是iOS中XML的類庫安裝詳細教程,想必都了解了吧,更多相關內容請繼續關注武林技術頻道。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 普陀区| 黎川县| 得荣县| 若尔盖县| 内江市| 临海市| 彰化县| 邵阳县| 乌兰浩特市| 池州市| 噶尔县| 延吉市| 惠水县| 泽州县| 罗定市| 图片| 平原县| 雷波县| 龙州县| 封开县| 雷州市| 于田县| 壶关县| 达日县| 黔西县| 会昌县| 城步| 钦州市| 黄平县| 咸丰县| 略阳县| 石家庄市| 新密市| 竹溪县| 盐源县| 双流县| 新乡市| 佳木斯市| 宕昌县| 平遥县| 轮台县|