基於DOM的解析器的核心是在內存中創建和XML文檔相對應的樹狀結構。XML文件的標記、標記中的文本數據和實體等都是內存中的樹狀結構的某個節點相對應。程序員
優勢:能夠方便地操做內存中的樹狀節點ide
缺點:若是XML文件較大,或者只須要解析XML文檔的一部分數據,就會佔用大量的內存空間函數
SAX解析的核心是事件處理機制,SAX採用事件機制的方式來解析XML文檔。使用SAX解析器對XML文檔進行解析時,SAX解析器根本不建立任何對象,只是在遇到XML文檔的各類標籤如文檔開始、元素開始、文本、元素結束時觸發對應的事件,並將XML元素的內容封裝成事件傳出去。而程序員則負責提供事件監聽器來監聽這些事件,從而觸發相應的事件處理方法,並經過這些事件處理方法實現對XML文檔的訪問。spa
優勢:具備佔用內存少,效率高等特色。對象
缺點:不便於隨機訪問任意節點。接口
QXmlStreamReader使用了遞增式的解析器,適合於在整個XML文檔中查找給定的標籤、讀入沒法放入內存的大文件以及處理XML的自定義數據。事件
優勢:快速、方便,分塊讀取XML文件,可讀取大文件內存
缺點:遞增式解析器,只能順序遍歷XML文件的元素,不能隨機訪問開發
QXmlStreamWriter類提供了簡單流接口的XML寫入器,寫入XML文檔只須要調用相應的記號寫入函數來寫入相關數據。文檔
優勢:快速、方便
缺點:只能按順序寫入元素,不能刪除、修改