TinyXML讀取xml檔案

2021-06-16 18:15:33 字數 1986 閱讀 7284

例子 xml 內容:

<?xml version="1.0" encoding="utf-8" ?>

電視劇集電影

以下為示例**,buffer 中儲存著上面例子的 xml 內容:

[cpp]

view plain

copy

void

cxmldlg::par***ml()  

;  if

( mbstoutf8( utf8, 

sizeof

(utf8), buffer ) <= 0 ) 

// 此函式見我之前關於 tinyxml 的文章

return

;  tixmldocument doc;  

doc.parse(utf8);  

tixmlelement* databaseelement = 0;  

tixmlelement* listelement = 0;  

tixmlelement* channelelement = 0;  

tixmlhandle dochandle( &doc );  

databaseelement = dochandle.firstchild( "config"

).firstchild( 

"database"

).toelement();  

assert( databaseelement  );  

// 取得字串屬性的內容

const

char

* ip = databaseelement->attribute(

"ip"

);  

// 取得整型屬性的值

intport = 0;  

databaseelement->queryintattribute("port"

, &port );  

intcount = 0;  

char

content[32] = ;  

listelement = dochandle.firstchild( "config"

).firstchild( 

"list"

).toelement();  

assert( listelement );  

for( channelelement = listelement->firstchildelement(

"channel"

); channelelement; channelelement = channelelement->nextsiblingelement(

"channel"

) )  

}  注意:

1) xml 內容中如果有中文,必須轉成 utf-8格式,否則可能會出問題,比如此例中,"電視劇集"的中文 gb2312 編碼會影響到後面的 "",導致取這個節點的 text 時,得到的結果是: "電視劇集",而取下乙個節點時將找不到節點。

2)使用 tixmldocument 與 tixmlhandle 的區別: 一次取多級子節點元素時,當某一級節點不存在,用 doc (tixmldocument) 會出現異常,程式崩潰,而用 dochandle (tixmlhandle) 則不會有異常。

比如:databaseelement = doc.firstchildelement( "conf" )->firstchildelement( "database" ); // 異常,崩潰

databaseelement = dochandle.firstchild( "conf" ).firstchild( "database" ).toelement(); // 不會異常,databaseelement 為 0

databaseelement = dochandle.firstchildelement( "conf" ).firstchildelement( "database" ).toelement(); // 不會異常,databaseelement 為 0

後兩種寫法的效果是一樣的。

TinyXML生成xml檔案

注意 insertendchild與linkendchild區別 insert 系列的函式插入的是結點的副本 包括所有子結點 而 linkendchild 插入的就是你建立的物件。例子 xml 內容 電視劇集電影 寫法一 cpp view plain copy void cxmldlg makexm...

TinyXML讀寫XML檔案

最近要用c 來讀寫配置檔案,和自己的需要記錄的資料,這這東西比存在資料庫裡面好用,但是唯一不爽的一點是可維護性太差,修改欄位後太難處理了,沒有php拿到引數方便,可以直接以字串來索引查詢引數的值,只能以相對位置,先拿到根目錄,然後再根據相對位置查詢。這個東西的好處是可以直接拿 碼用,只有6個檔案,放...

使用TinyXML讀 寫XML檔案

1 tinyxml 引用網上的原話 tinyxml是目前非常流行的一款基於dom模型的xml解析器,簡單易用且小巧 玲瓏,非常適合儲存簡單資料,配置檔案,物件序列化等資料量不是很大的操作。支援對xml的讀取和修改,不直接支援xpath,需要借助另乙個相關的類庫tinyxpath才可以支援xpath ...