你不再需要TinyXML,推薦RapidXML

2021-09-08 07:03:10 字數 1104 閱讀 5366

tinyxml有兩個不爽的地方,一是它的介面使用file*,另外乙個是它對 wchar_t不能很好的支援。前陣子看boost庫的更新中多了乙個propertytree,他在處理xml時用到了另外乙個小的庫 –rapidxml。既然間接的是boost庫的一部分,所以是值得一試的。於是找到其官方**(研究了一番。一看之下,甚是滿意,也推薦給大家看看!

首先就是速度,據它自己宣稱比tinyxml快30到60倍,比xerces dom快50到100倍!詳細的測試比較請見其使用者手冊(的「4. performance 」一節。

其次它的設計非常的簡潔,只依賴於標準庫中的幾個基本的類。它的輸入輸出都是字串,這樣很好,乙個庫就應該關注自己核心的內容,做盡量少的事情。它的api其實和tinyxml倒是有幾分相似,用過tinyxml的人應該很容易上手:

tinyxml主要介面類     rapidxml的主要介面類

tinyxml主要介面類

rapidxml的主要介面類

class tixmldocument

template

class xml_document

class tixmlnode

template

class xml_node

class tixmlattribute

template

class xml_attribute

下面還是看乙個具體的例子來體驗一下,下面是tinyxml官方教程中建立xml文件的一段**:

void build_******_doc( )

下面是使用rapidxml實現類似功能的**:

string text;

rapidxml::print(std::back_inserter(text), doc, 0);

// write text to file by yourself }

下面是使用rapidxml分析xml的樣例**:

void parse_doc_by_rapidxml(char* xml_doc)

好東西,大家分享!:d

你不再需要TinyXML,推薦RapidXML

目前我公司開發的nexus engine的底層物件序列化使用了tinyxml來讀寫xml檔案。tinyxml有兩個不爽的地方,一是它的介面使用file 另外乙個是它對wchar t不能很好的支援。前陣子看boost庫的更新中多了乙個propertytree,他在處理xml時用到了另外乙個小的庫 ra...

願你不再迷茫

如果歲月是一路漫長的旅途,人生則是其中的一道道深淺不一的腳印,且借西風遠望,視線中那一排排印痕,有的已被朔風磨去了稜角,被時光的陰翳悄然遮蔽,有的卻依然清晰,像被鐫刻在了翡翠青石之中,在時空的逆流中熠熠生輝 古人云 天行健,君子以自強不息。人生短暫,光陰無情,時光如流水般匆匆而過,來不及享受便已化作...

讓監控不再需要人

生命中唯一不能走的是回頭路,唯一不能錯過的是成長的路。我們的主人翁叫白慧冬 筆名青潤 他正走在自己顛簸的路上,沒有回頭,有的只是堅持和收穫。他跟他所屬的團隊開發了一套智慧型分析軟體,拿我們隨處可見的攝像頭來說,其錄影最後是傳輸到監控13 工作已8 年多 做這個軟體也有三年的他,一定有很多切身的體驗和...