vc 中tinyxml的使用

2021-08-19 18:58:19 字數 2666 閱讀 4535

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/           //

工作目錄

|-- 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最佳實踐

我們在conf目錄下建立student.xml,xml**如下:

"

軟體學院

">

"c++">

"tinyxml

" number="

123">

[email protected]

中國

"jsoncpp

" number="

456">

[email protected]

美國

使用tinyxml,我們只需要在標頭檔案中包含 就行了。

列印整個xml**如下:

void printschoolxml()  else    

}

**如下:

void readschoolxml()  else 

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() ) } }

這裡我們將通過xml寫入**操作,寫入幾乎和conf/school.xml同樣內容到conf/school-write.xml,**如下:

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個檔案拷貝到專案中就可以直接使用了...