最近做一個項目用到了XML,以前沒有接觸過,寫個日誌總結一下;
XML簡介:不讓帶連接- -,可查wikipedia
TinyXML官方文檔鏈接:
http://www.grinninglizard.com/tinyxmldocs/index.html
目前XML的解析主要有兩大模型:SAX和DOM
SAX(Simple APIfor XML)是一個事件驅動式的API,使用者定義回調函數,當解析時,若發生時間則會調用用戶的回調函數;SAX的有點事佔用內存少,速度快,但是用戶程序層面上會比較複雜;
DOM(DocumentObject Model),文檔對象模型,是W3C組織推薦的處理可擴展置標語言的標準編程接口。其在分析時,會一次性將整個XML文檔進行分析,並在內存中形成對應的樹結構。這種方式對內存佔用大,速度往往慢於SAX,但是可以給用戶提供一個面向對象的訪問接口,對用戶更爲友好。
目前開源的XML庫有:TinyXML和CMarkup。但是CMarkup的協議不支持商業使用,tinyxml可以,因此相對來說,TinyXML被使用的更爲廣泛;
TinyXML是一個基於DOM模型的、非驗證的輕量級c++解釋器。其除了上述優點之外,還有另外一個優點就是可以跨平臺,即支持Win、Linux和MAC三種系統。
如上介紹所述,TinyXML是面向對象的,我們經常用到的類有如下幾個:
TiXmlDocument:文檔類,創建一個這個類,就等於創建了一個XML文檔;
TiXMLDeclaration:聲明類,XML的第一句需要聲明版本、XML文檔的編碼方式等,這個類就是定義XML文檔聲明的;尤其要注意的是編碼方式,與寫XML時的字符串編碼方式對應,不然寫完XML之後用瀏覽器打開,會看不到預期的結果。
TiXMLComment:註釋類,XML文件在開頭一般都會附帶一個註釋語句,大概包含日期等信息,這個類就是定義註釋語句的;
TiXMLElement:元素類,它是構成XML文件的主要部分,並且支持嵌套結構,一般使用這種結構來儲存屬性;
TiXmlText:文本對象,它嵌套在某個元素內部;
在實際使用中,我們可以在這個基礎類的層面上再封裝一個類來專門針對我們的需求使用;
TinyXML庫的使用教程還是非常多的,此處就不提供源代碼了;
參考博客:
1、http://blog.csdn.net/borise123456/article/details/6076545
2、http://blog.csdn.net/tulun/article/details/5551778