你不再需要TinyXML,推薦RapidXML

2021-06-17 16:16:00 字數 1294 閱讀 7329

目前我公司開發的nexus engine的底層物件序列化使用了tinyxml來讀寫xml檔案。tinyxml有兩個不爽的地方,一是它的介面使用file*,另外乙個是它對wchar_t不能很好的支援。前陣子看boost庫的更新中多了乙個propertytree,他在處理xml時用到了另外乙個小的庫--rapidxml。既然間接的是boost庫的一部分,所以是值得一試的。於是找到其官方**( )研究了一番。一看之下,甚是滿意,也推薦給大家看看!

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

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

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

class tixmldocument

template 

class xml_document

class tixmlnode

template 

class xml_node

class tixmlattribute

template 

class xml_attribute

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

view plain

copy to clipboard

print?

void build_******_doc( )  

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

view plain

copy to clipboard

print?

void build_******_doc_by_rapidxml()    

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

view plain

copy to clipboard

print?

void parse_doc_by_rapidxml(char* xml_doc)  

好東西,大家分享!:d

你不再需要TinyXML,推薦RapidXML

tinyxml有兩個不爽的地方,一是它的介面使用file 另外乙個是它對 wchar t不能很好的支援。前陣子看boost庫的更新中多了乙個propertytree,他在處理xml時用到了另外乙個小的庫 rapidxml。既然間接的是boost庫的一部分,所以是值得一試的。於是找到其官方 研究了一番...

願你不再迷茫

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

讓監控不再需要人

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