tinyxml庫使用例項

2021-10-06 07:23:31 字數 2340 閱讀 2118

讀取和設定xml配置檔案是最常用的操作,tinyxml是乙個開源的解析xml的c++解析庫,能夠在windows或linux中編譯。這個解析庫的模型通過解析xml檔案,然後在記憶體中生成dom模型,從而讓我們很方便的遍歷這棵xml樹。

使用tinyxml只需要將其中的6個檔案拷貝到專案中就可以直接使用了,這六個檔案是:tinyxml.h、tinystr.h、tinystr.cpp、tinyxml.cpp、tinyxmlerror.cpp、tinyxmlparser.cpp

tinyxml包括如下類:

tixmldocument:xml文件類,它一般用於指示乙個文件物件;

tixmldeclaration:xml標識類,也就是xml檔案第一行中標註的相關資訊;

tixmlelement:xml節點類,這個類用來表示乙個節點;

tixmltext:xml節點類的文字資訊類,標註了xml節點類的文字資訊;

tixmlcomment:xml的注釋資訊類,用來標識xml文件類的注釋資訊;

繼承關係如下:

以如下students.xml為例進行資料讀取:

"james" age =

"10"

>

1<

/class>

2<

/grade>

<

/student>

"jane" age =

"11"

>

2<

/class>

3<

/grade>

<

/student>

<

/students>

讀取**:

#include

#include

"tinyxml.h"

#define checknullreturnminusone(t) if (nullptr == t)

intmain()

tixmlelement* proot = doc.

rootelement()

;checknullreturnminusone

(proot)

;for

(tixmlelement* pstudent = proot-

>

firstchildelement()

; pstudent !=

nullptr

; pstudent = pstudent-

>

nextsiblingelement()

)// 獲取student節點的子節點

for(tixmlelement* pdata = pstudent-

>

firstchildelement()

; pdata !=

nullptr

; pdata = pdata-

>

nextsiblingelement()

) std::cout <<

"----------------------------------\n";}

return0;

}

程式執行輸出為:

--

----

----

----

----

----

----

-------

name : james

age :

10class :

1grade :2--

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

-name : jane

age :

11class :

2grade :3--

----

----

----

----

----

----

----

----

TinyXML使用感悟

這兩天有個c 的小開發專案需要儲存一些有結構的資料,於是想用tinyxml的庫來儲存到xml檔案中,但是研究半天下來,發現他的很多函式都是const定義的引數變數,只能將要寫的東西寫死在 中,這樣就根本沒有互動性,使用者也不能輕鬆更改xml的內容。很是苦惱。部分函式定義如下 tixmldocumen...

tinyxml非常好的例項

這個例子對於只想簡單使用xml的使用者來說,非常有學習價值。完整程式 相信具有基本c 知識的人可以明白的 xml檔案內容 xml version 1.0 encoding gb2312 standalone yes resumes num 2 resume name 裕作 gender 男 gend...

使用TinyXml庫解析XML檔案 QT 原始碼

qt5.9.1 msvc2015 using namespace std int main int argc,char argv 開啟xml檔案 tixmldocument doc if doc.loadfile xml 1.xml qdebug 載入xml檔案失敗 const char error...