TinyXML教程

weixin_33766168發表於2017-10-09

TinyXML 是一個小巧的 C++ XML parser Library,十分容易就可以整合到你的程式,而且學習曲線十分的短。

TiXmlNode

TinyXML 使用 node 的觀念來看待 XML 檔案樹,TiXmlNode 就是代表著一個節點的 class。

Load and Save

TinyXML 使用 TiXmlDocument 這個 class 來載入/儲存 xml file。A document binds together all the XML pieces. It can be saved, loaded, and printed to the screen.


None.gifTiXmlDocument doc;doc.Load( "myfile.xml" );

存取的時候,要先取得下一層的 Child Element:


None.gifTiXmlElement* element = doc.FirstChildElement();

也可以指定標籤來取得特定的 Element,如同下面的例子:


None.gifTiXmlElement* element = doc.FirstChildElement("Node");

TiXmlElement

The element is a container class. It has a value, the element name, and can contain other elements, text, comments, and unknowns. Elements also contain an arbitrary number of attributes.

None.gif<foo>This is text</foo>

例如上面的片斷,我們可以使用 GetText() 取得被包起來的文字:

None.gifconst char* str = fooElement->GetText();

TinyXML and wxWidgets

TinyXML 預設以 UTF-8 編碼,wxWidgets 編譯成 Unicode mode 時,傳入的引數需要轉碼,wxString 可以使用 mb_str() 轉碼,就可以與 TinyXML一起使用。

如果要轉換 UTF-8 char * 字串為 wxString,使用下列的方式:


None.gifconst char* str = fooElement->GetText();wxString myString(str, wxConvUTF8);
None.gif