android中有哪幾種解析xml的類,官方推薦哪種?以及它們的原理和區(qū)別

  • DOM解析
    優(yōu)點:
    1.XML樹在內(nèi)存中完整存儲,因此可以直接修改其數(shù)據(jù)和結構.
    2.可以通過該解析器隨時訪問XML樹中的任何一個節(jié)點.
    3.DOM解析器的API在使用上也相對比較簡單.
    缺點:如果XML文檔體積比較大時,將文檔讀入內(nèi)存是非常消耗系統(tǒng)資源的.
    使用場景:DOM 是用與平臺和語言無關的方式表示 XML 文檔的官方 W3C 標準.DOM 是以層次結構組織的節(jié)點的集合.這個層次結構允許開發(fā)人員在樹中尋找特定信息.分析該結構通常需要加載整個文檔和構造層次結構,然后才能進行任何工作.DOM是基于對象層次結構的.
  • SAX解析
    優(yōu)點:
    SAX 對內(nèi)存的要求比較低,因為它讓開發(fā)人員自己來決定所要處理的標簽.特別是當開發(fā)人員只需要處理文檔中所包含的部分數(shù)據(jù)時,SAX 這種擴展能力得到了更好的體現(xiàn).
    缺點:
    用SAX方式進行XML解析時,需要順序執(zhí)行,所以很難訪問到同一文檔中的不同數(shù)據(jù).此外,在基于該方式的解析編碼過程也相對復雜.
    使用場景:
    對于含有數(shù)據(jù)量十分巨大,而又不用對文檔的所有數(shù)據(jù)進行遍歷或者分析的時候,使用該方法十分有效.該方法不用將整個文檔讀入內(nèi)存,而只需讀取到程序所需的文檔標簽處即可.
  • Xmlpull解析
    android SDK提供了xmlpull api,xmlpull和sax類似,是基于流(stream)操作文件,然后根據(jù)節(jié)點事件回調(diào)開發(fā)者編寫的處理程序.因為是基于流的處理,因此xmlpull和sax都比較節(jié)約內(nèi)存資源,不會象dom那樣要把所有節(jié)點以對橡樹的形式展現(xiàn)在內(nèi)存中.xmlpull比sax更簡明,而且不需要掃描完整個流.
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容