今天使用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
這是我找的