iOS平台XML解析類庫對比概述(iPhone網絡篇一)


在iPhone開發中,XML的解析有很多選擇,僅iOS SDK就提供了NSXMLParserlibxml2兩個類庫,還有如TBXMLTouchXMLKissXMLTinyXMLGDataXML等第三方類庫。

解析XML通常有兩種方式:DOM和SAX

  •  DOM解析XML時,讀入整個XML文檔並構建一個駐留內存的樹結構(稱“節點樹”),之后就通過遍歷樹結構可以檢索任意XML節點,讀取它的屬性和值。而起通常情況下,可以借助XPath,直接查詢XML節點。
  • SAX解析XML,是基於事件通知的模式,一邊讀取XML文檔一邊處理,不必等整個文檔加載完之后才采取操作,當在讀取解析過程中遇到需要處理的對象,會發出通知對其進行處理。

一般在iOS平台下,比較常用的XML解析類庫有如下幾種:

  1. NSXMLParser     這是一個SAX方式解析XML的類庫,默認包含在iOS SDK中,使用也比較簡單。(下次專門總結學習)
  2. libxml2     是一套默認包含在iOS SDK中的開源類庫,它是基於C語言的API,所以使用起來相對不太方便,但它同時支持DOM和SAX解析,尤其是它的SAX解析方式很酷,可以邊讀邊解析,非常適用於從網上下載一個很大的XML文件,可極大提供解析效率。
  3. TBXML     是一套輕量級的DOM方式的XML解析類庫,有很好的性能和低內存占用,不過它不對XML格式進行校驗,不支持XPath,並且只支持解析,不支持對XML進行修改。
  4. TouchXML   這也是一套DOM方式的XML解析類庫,支持XPath,不支持XML的修改。
  5. KissXML   這是一套基於TouchXML的XML解析類庫,只不過實現了支持XML的修改。 
  6. TinyXML   這是一套小巧的基於C語言的DOM方式進行XML解析的類庫,支持對XML的讀取和修改,不直接支持XPath,需要借助TinyXPath才可以支持XPath。
  7. GDataXML  它是Google開發的DOM方式XML解析類庫,支持讀取和修改XML文檔,支持XPath方式查詢。

以上幾大類庫,在讀取很小的XML文檔上,性能基本沒有差別,不過從調用的方便性來說,建議使用TouchXML、KissXML或GDataXML。

如果是需要讀取和修改XML文檔,建議使用KissXML或GDataXML。

如果需要讀取非常大的XML文檔,則建議使用libxml2或TBXML。

不想使用第三方類庫,則就使用iOS自帶的NSXMLParser。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM