tingyxml

 DOM(Document Object Model,文檔對象模型),則是在分析時,一次性的將整個XML文檔進行分析,並在內存中形成對應的樹結構,同時,向用戶提供一系列的接口來訪問和編輯該樹結構。這種方式佔用內存大,速度往往慢於SAX,但可以給用戶提供一個面向對象的訪問接口,對用戶更爲友好。

解析器分爲兩種:一種是驗證的,即會跟據XML文件中的聲明,用相應的DTD文件對XML文件進行校驗,檢查它是否滿足DTD文件的要求。另一種是忽略DTD文件,只要基本格式正確,就可以進行解析。

一般而言,驗證的解析器通常都是比較重量級的。TinyXml不支持驗證,但是體積很小,用在解析格式較爲簡單的XML文件,比如配置文件、簡單的數據文件,特別的合適,可以很方便的靜態連接到程序裏。但是由於它是非驗證的,因此需要在程序裏做許多檢查工做,加重了程序編寫的負擔。

下面介紹TinyXML的一些類。在TinyXML中,根據XML的各種元素來定義了一些類:

    TiXmlBase:整個TinyXML模型的基類。

    TiXmlAttribute:對應於XML中的元素的屬性。

    TiXmlNode:對應於DOM結構中的節點。

    TiXmlComment:對應於XML中的註釋

    TiXmlDeclaration:對應於XML中的申明部分,<?versiong="1.0" ?>。

    TiXmlDocument:對應於XML的整個文檔。

    TiXmlElement:對應於XML的元素。

    TiXmlText:對應於XML的文字部分

    TiXmlUnknown:對應於XML的未知部分。

    TiXmlHandler:定義了針對XML的一些操作。

TinyXML2實現了一個名爲MemPoolT的模板類,創建對象時,均是由XMLDocument持有的MemPoolT對象來進行內存分配,在MemPoolT中,分配的內存以鏈表形式連接起來,統一管理,統一釋放。因此,即便是所創建的節點未被鏈接到文檔樹中,也不會造成內存泄漏,所以,無需顯式的執行delete操作。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章