天天看點

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

DOM和SAX是應用中操縱XML文檔的兩種主要API,它們分别解釋如下: DOM,即Document Object Model,中文叫文檔對象模型。DOM是W3C定義的标準文檔對象模型,是一個與作業系統和程式設計語言無關的、用于記憶體存儲和操作階層化文檔的模型。當按照DOM模型解析XML文檔時,就會在記憶體中構造一個對應的DOM樹,它可以用于不同節點之間的周遊。然而,在周遊之前必須先完成DOM樹的構造。是以,在處理規模較大的XML文檔時就很耗記憶體,占用資源較多。尤其是隻需要操作文檔中一小部分時效率很低。 SAX,即Simple API for XML的簡稱,中文叫XML簡單應用程式接口。它是一個事實上的标準。與DOM不同的是,它是用事件驅動模型。解析XMl文檔時每遇到一個開始或者結束标簽、或者屬性、或者一條指令時,程式就産生一個事件來進行相應的處理。是以在操作文檔之前不需要對整個文檔進行解析。實際上,文檔的各個部分可以在進行解析的同時進行操作。是以,SAX相對于DOM來說更适合操作大文檔。