(五十七)android解析XML總結(SAX、Pull、Dom三種方式)

來源:互聯網
上載者:User

標籤:

一、SAX、DOM、PULL的比較

SAX、DOM、PULL各有自己的特點,具體操作XML的時候該如何選擇呢?

1.記憶體佔用

這是一個根本性問題。由於Android手機效能相對於現在的應用操作還是有限的,程式對記憶體的佔用直接影響到瞭解析XML的速度。在這點上,SAX、Pull以它們比DOM佔用更少的記憶體的解析方式,更適合於Android手機開發。

2.編程方式

SAX採用事件驅動,在相應事件觸發的時候,會調用使用者編寫好的方法。也就是說,每解析一類XML,就要編寫一個新的適合該類XML的處理類。這顯然不是一個好的解決辦法,儘管其在解析速度上是那麼優秀。而這點,DOM因為是W3C的規範。所以被更多程式員所知道和使用。所以在開發過程中,沒有太大困難。Pull雖然屬於一個小眾的,甚至是不為人知的解析器,但是通過上面對其介紹和樣本,我們應該能看出它的簡潔性。

3.訪問與修改

由於採用的是流式解析,這就說明它們不能像DOM那樣隨機訪問,XML的其中任意一個節點。並且,SAX並沒有提供對文檔中加節點的API,更沒有刪除,修改文檔內容的方法。

4.訪問方式

這是產生它們解析快慢的根本原因。如果把SAX和Pull比喻成一目十行,很快但是是走馬觀花的閱讀方式的話,那麼DOM就是逐字逐句的閱讀,很慢,但是是過目不忘。這裡還要需要注意的是,SAX,Pull解析的方式是同步的,即解析器讀到哪裡,就對哪裡進行處理。而DOM是已經將檔案解析好後,供使用者提取XML中感興趣的資訊。

總結:

出於對記憶體佔用的考慮,推薦使用SAX或者Pull來工作。可是根據它們工作的原理:如果只是需要XML最後的幾個節點的相關資訊,或者出現反覆檢索XML檔案的情況,那麼基本上三者在效能上就沒有什麼差異,反而在這時,SAX的處理類會使程式顯得比其他的實現方式顯得臃腫。所以,想做一個高效能的Android軟體,還是要多分析,選擇合適的工具,才能發揮它的作用。

此部分主要參考網址:http://book.51cto.com/art/201211/367725.htm

二、對android解析xml的這三種方式總結

參考網址:http://www.cnblogs.com/JerryWang1991/archive/2012/02/24/2365507.html

(五十七)android解析XML總結(SAX、Pull、Dom三種方式)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.