XML解析的兩種方式比較DOM與Sax

2021-10-08 22:24:29 字數 1008 閱讀 5965

對於dom解析,首先是將整個xml文件讀到記憶體中,形成一顆倒狀的dom樹,如下圖:

從上面的dom樹,我們應該很清楚dom的解析思想了:其實就是在我們的程式對xml進行操作之前,dom解析器就把整個文件讀取到記憶體中去了。

知道了dom解析的思想後,我們對其方式進行的利弊進行一下分析:

(1)、優點:

a.能夠從整體上去把我文件結構,十分方便對xml文件的節點進行crdu操作;

b.只需要解析一次拿到dom物件之後就可以重複使用該物件進行操作,可以減少解析的次數

(2)、缺點:

a.解析過程比較慢,需要將整個文件都解析完成後才能進行操作;

b.需要將整個文件的內容都載入到記憶體中,比較消耗記憶體,當文件過大時,這種方式對記憶體的要求是很大的;

c.如果只關注文件的一小部分,會造成資源的極大浪費;

d.解析的時候,會有延遲,因為每次都是從頭開始遍歷。

sax解析方式是基於事件驅動的方式來解析的。當解析器發現元素開始、元素結束、文字、文件的開始或結束時,會觸發相應的方法去處理。

同樣的,我們對上面的xml文件也通過畫圖的方式來說明sax的解析思想:

同樣,我們對sax的解析方式思想通過上面的圖的形式,可以清楚的描述其實現解析的思想。

下面,談談sax解析方式的優點和缺點:

(1)優點

a.不需要等待整個xml文件全部載入到記憶體中,當解析到某一部分的時候自動觸發到對應的方法去做處理,處理的效率比較高;

b.不需要將整個文件載入到記憶體中去,對記憶體的要求比較低,無論多大的xml理論上都可以解析,而且沒有延遲。

(2)缺點

a.每次解析都只能處理一次,下次要再次處理還要重複的執行解析操作;

b.只能進行查詢,不能進行增刪改的操作。

XML解析的兩種方式比較DOM與Sax

xml檔案 將整個xml資料轉換成乙個樹形物件 document物件 將xml中的標籤,屬性,文字都作為乙個結點物件 在解析xml的時候,先將整個xml一次性讀入到記憶體中,封裝成樹物件再進行操作 public class xmldemo dom方式解析的優點 由於所有的結點都在記憶體的docume...

XML的兩種解析方法 DOM與SAX的比較分析

1 sax解析 sax apifor xml。基於事件驅動的解析方法,逐行解析資料。解析過程 開始標籤 取值 結束標籤 取值 為解決dom的問題,出現了sax。sax 事件驅動。當解析器發現元素開始 元素結束 文字 文件的開始或 結束等時,傳送事件,程式設計師編寫響應這些事件的 儲存資料。2 dom...

XML的兩種解析方式Dom和SAX的區別

dom和sax是應用中操縱xml文件的兩種主要api,它們分別解釋如下 dom,即document object model,中文叫文件物件模型。dom是w3c定義的標準文件物件模型,是乙個與作業系統和程式語言無關的 用於記憶體儲存和操作層次化文件的模型。當按照dom模型解析xml文件時,就會在記憶...