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