我要提問
我來說兩句
最近使用tinyxml進行c++ xml解析,感覺使用起來比較簡單,很容易上手,本文給出乙個使用tinyxml進行xml解析的簡單例子,很多複雜的應用都可以基於本例子的方法來完成。以後的文章裡會講解使用xerces進行c++ xml解析的例子,希望大家一起交流。
tinyxml是乙個開源的解析xml的解析庫,能夠用於c++,能夠在windows或linux中編譯。這個解析庫的模型通過解析xml檔案,然後在記憶體中生成dom模型,從而讓我們很方便的遍歷這棵xml樹。
dom模型即文件物件模型,是將整個文件分成多個元素(如書、章、節、段等),並利用樹型結構表示這些元素之間的順序關係以及巢狀包含關係。
在附加包含路徑裡新增:你的tinyxpath路徑/tinyxpath/include
在附加庫路徑裡新增:你的tinyxpath路徑/tinyxpath/lib
在物件/庫路徑裡新增:tinyxpathd.lib,如果使用release版本,則是tinyxpath.lib。
另外,由於我開發的專案是多執行緒的,所以設定了多執行緒的環境,因此使用tinyxml沒有出現問題。本人將tinyxml寫在乙個單獨的c++工程進行測試,發現如果不設定多執行緒的環境,會出現鏈結錯誤。我覺得原因可能是tinyxml使用了多執行緒環境,因此需要設定多執行緒的環境。在工程/設定下的c/c++選項卡中,選擇code generation,在use run-time library中選擇debug multithreaed dll即可。
本例的xml檔案students.xml如下:
88208888
西安市太白南路二號
88206666
西安市光華路
程式**xmlparseexample.cpp如下所示:
#include
#include
#include
using std::string;
int main()
tixmlelement* phoneelement = studentelement->firstchildelement();//獲得student的phone元素
std::cout 《 "phone" 《 " : " 《 phoneelement->gettext() 《 std::endl;
tixmlelement* addresselement = phoneelement->nextsiblingelement();
std::cout 《 "address" 《 " : " 《 phoneelement->gettext() 《 std::endl;
studentelement = studentelement->nextsiblingelement();
}return 0;
}程式執行結果如下:
name : 張三
studentno : 13031001
*** : 男
age : 22
phone : 88208888
address : 88208888
name : 李四
studentno : 13031002
*** : 男
age : 20
phone : 88206666
address : 88206666
本例中使用的是對xml檔案進行解析,很容易掌握,但是很多開發人員不知道如何對xml 字元流(非xml檔案)進行解析,我看了tinyxml提供的源**,裡面可以使用如下方法對xml流解析。對應於上例,**如下:
string xmlstring ="\\
\88208888\
西安市太白南路二號\\\
88206666\
西安市光華路\\\
";tixmldocument* mydocument = new tixmldocument();
mydocument->parse(xmlstring.c_str());
使用parse函式就可以解析xml字元流了,這是很多開發者不太熟悉的情況。
下面介紹tinyxml的一些類。在tinyxml中,根據xml的各種元素來定義了一些類:
tixmlbase:整個tinyxml模型的基類。
tixmlattribute:對應於xml中的元素的屬性。
tixmlnode:對應於dom結構中的節點。
tixmlcomment:對應於xml中的注釋
tixmldeclaration:對應於xml中的申明部分,<?versiong="1.0" ?>。
tixmldocument:對應於xml的整個文件。
tixmlelement:對應於xml的元素。
tixmltext:對應於xml的文字部分
tixmlunknown:對應於xml的未知部分。
tixmlhandler:定義了針對xml的一些操作。
C XML解析之TinyXML篇
8.7分 出處 2345軟體大全 人氣 4922 英語口語紅寶書2.1 愛主題1.6 c c 程式設計學習與實驗系統2013.3 codelite ide for c c v3.5.5377 c c 程式設計學習與實驗系統v2011.2 綠色版 dev c 5v4.9.9.2 最近使用tinyxml...
C XML解析之TinyXML篇
最近使用tinyxml進行c xml解析,感覺使用起來比較簡單,很容易上手,本文給出乙個使用tinyxml進行xml解析的簡單例子,很多複雜的應用都可以基於本例子的方法來完成。以後的文章裡會講解使用xerces進行c xml解析的例子,希望大家一起交流。tinyxml是乙個開源的解析xml的解析庫,...
C XML解析方式例項解析
c xml解析通過xpath的方式是如何辦到的呢?具體的操作步驟是什麼呢?那麼下面我們就向你介紹通過xpath的方式來實現c xml解析,希望對你了解c xml解析有所幫助。c xml解析通過xpath的方式的步驟 1 需要先載入文件,然後再讀取想要的節點值。xml文件 protected xmld...