tinyxml是乙個開源的解析xml的解析庫,能夠用於c++,能夠在windows或linux中編譯,使用tinyxml進行c++ xml解析,使用簡單,容易上手。
這個解析庫的模型通過解析xml檔案,然後在記憶體中生成dom模型,從而讓我們很方便的遍歷這棵xml樹。
dom模型即文件物件模型,是將整個文件分成多個元素(如書、章、節、段等),並利用樹型結構表示這些元素之間的順序關係以及巢狀包含關係。
在tinyxml中,根據xml的各種元素來定義了一些類:
tixmlbase:整個tinyxml模型的基類。
tixmlattribute:對應於xml中的元素的屬性。
tixmlnode:對應於dom結構中的節點。
tixmlcomment:對應於xml中的注釋。
tixmldeclaration:對應於xml中的申明部分,即。
tixmldocument:對應於xml的整個文件。
tixmlelement:對應於xml的元素。
tixmltext:對應於xml的文字部分。
tixmlunknown:對應於xml的未知部分。
tixmlhandler:定義了針對xml的一些操作。
本文執行環境是: redhat 5.5 + g++version 4.6.1 + gnu make 3.81 + tinyxml_2_6_2
解壓之後得到資料夾tinyxml,tinyxml的標頭檔案和cpp檔案,都在這個資料夾,為了我們的管理我們的專案工程,我們還是把tinyxml做乙個整理。
由於tinyxml不僅支援linux編譯,同時也支援windows下編譯,所以解壓之後不僅有h檔案,cpp檔案,還有vc工程的一些工程檔案,這裡我們只在linux上使用,所以只留下h檔案和cpp檔案,其他檔案一概刪除
這裡我列出整理後的工作目錄:
tinyxml/ //我們在conf目錄下建立student.xml,xml**如下:工作目錄
|-- include //
標頭檔案根目錄
| |-- tinyxml //
tinyxml標頭檔案,包括tinystr.h tinyxml.h
|-- src //
cpp原始碼檔案根目錄
|-- tinyxml //
tinyxml原始碼資料夾,包括tinystr.cpp tinyxml.cpp tinyxmlerror.cpp tinyxmlparser.cpp
|-- main.cpp //
我們的主函式,呼叫tinyxml的示例**
|-- conf //
我們示例中用的xml檔案所在的資料夾
|-- makefile //
makefile,不用我們多說了吧,不懂請看我部落格的makefile最佳實踐
"使用tinyxml,我們只需要在標頭檔案中包含 就行了。軟體學院
">
"c++">
"tinyxml
" number="
123">
中國
"jsoncpp
" number="
456">
美國
列印整個xml**如下:
void printschoolxml() else**如下:}
void readschoolxml() else這裡我們將通過xml寫入**操作,寫入幾乎和conf/school.xml同樣內容到conf/school-write.xml,**如下:tixmlelement* rootelement = doc.rootelement(); //
school元素
tixmlelement* classelement = rootelement->firstchildelement(); //
class元素
tixmlelement* studentelement = classelement->firstchildelement(); //
students
for (; studentelement != null; studentelement = studentelement->nextsiblingelement() )
tixmlelement* studentcontactelement = studentelement->firstchildelement();//
獲得student的第乙個****
for (; studentcontactelement != null; studentcontactelement = studentcontactelement->nextsiblingelement() ) } }
void writeschoolxml()
unzip tinyxml.zip請參考cd tinyxml
make
./main
C 中Tinyxml的使用
homepage download tinyxml的程式設計模型 tixmlbase 其它類的基類,是個抽象類 tixmldocument 表示整個xml文件,不對應其中某個特定的節點。tixmlelement 表示元素節點,可以包含子節點和tixmlattribute tixmlcomment 表...
TinyXML使用感悟
這兩天有個c 的小開發專案需要儲存一些有結構的資料,於是想用tinyxml的庫來儲存到xml檔案中,但是研究半天下來,發現他的很多函式都是const定義的引數變數,只能將要寫的東西寫死在 中,這樣就根本沒有互動性,使用者也不能輕鬆更改xml的內容。很是苦惱。部分函式定義如下 tixmldocumen...
tinyxml庫使用例項
讀取和設定xml配置檔案是最常用的操作,tinyxml是乙個開源的解析xml的c 解析庫,能夠在windows或linux中編譯。這個解析庫的模型通過解析xml檔案,然後在記憶體中生成dom模型,從而讓我們很方便的遍歷這棵xml樹。使用tinyxml只需要將其中的6個檔案拷貝到專案中就可以直接使用了...