iPhone開發中的XML解析類庫對比

jopen 12年前發布 | 19K 次閱讀 iPhone iOS開發 移動開發

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

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

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

    一般在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方式查詢。
    8. </ol>

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

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

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

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

      </div>

       

      本文來自:http://www.cnblogs.com/lovecode/articles/2305408.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!