c++解析xml文件


今天使用c++寫設計模式的作業,便要使用到xml文件。

作為一個數據傳輸文件,獲取其內容十分重要,於是便搜索了如何在c++環境下解析xml文件。

我用的工具是VS2009,因為占用內存較少,而且足夠我使用。

解析xml文件有很多第三方庫,但大多使用的都是tiny2XML來解析,於是我也使用這個第三方庫。

遇到了很多問題,記住VS中的文件是要引入的,而非復制粘貼的,否則找不到。

首先頭部這樣寫就行

 

 其次文件這樣引入

 

 

我想都會吧

但是頭文件這里出現了問題,找不到tinyxml2.h

后來百度搜索發現右擊項目名稱,點擊最下方的屬性,找到C/C++常規加上.h文件所在路徑就解決了,只是這個項目

 

 隨后寫代碼解析xml文件

int main(){
	NvWa nw;
	XMLDocument xml;
	xml.LoadFile("config.xml");

	XMLElement *category = xml.RootElement();
	XMLElement *con = category->FirstChildElement("Name");
	const char* name = con->GetText();
	cout << name << endl;

	Person *p = nw.makePerson(name);
	p->show();

}

  

1. 首先定義一個xml的文件對象: TiXmlDocument doc;

2. 然后開始加載文件: doc.LoadFile("test.xml")

3. 獲得根節點, TiXmlElement* root = doc.FirstChildElement();

4. 獲得根節點級別下的第一個節點(因為平時的跟節點通常是這么設計的, 用來說明這個文檔所描述的對象)

在例子里就是number: TiXmlElement* elem = root->FirstChildElement();

5. 如果要訪問grade節點,也就是說訪問number的兄弟節點,那么就是 TiXmlElement elem2 = elem->NextSiblingElement();

非常簡單直白

6. 如果要訪問其中的屬性呢,比如說number里的屬性in_use的值, 那么就是elem->Attribute("in_use");

7. 如果想獲得“233”這個值,就用elem->GetText();


————————————————
版權聲明:本文為CSDN博主「ShiningStarPxx」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/ShiningStarPxx/article/details/8867364

這是我找的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM