TinyXml 與 Rapidxml效率對比

2021-06-26 11:28:55 字數 810 閱讀 5684

以前在做開發中一直使用tinyxml,在網上搜尋說rapidxml的效率比tinyxml高。個人比較喜歡追求效率,所以忍不住嘗試性使用rapidxml。rapidxml 的官方**如下:

rapidxml是乙個使用c++編寫的xml dom解析工具包,整個解析工具包包含在乙個標頭檔案中,所以使用時不用編譯也不用連線。只要包含rapidxml中的三個標頭檔案即可。

rapidxml 試圖成為最快的 xml dom 解析工具包,同時保證解析結果的可用性、可移植性以及與 w3c 標準的相容性。在操作同一資料時,其解析速度接近於 strlen() 函式。

以下是rapidxml提供的常見xml庫效率對照表,其中還很牛鼻地提供了和strlen()函式的效率對比。如下圖是官方提供的對比資料:

二、簡單使用

包含必要的標頭檔案

#include "rapidxml.hpp"  

建立文件物件

rapidxml::xml_documentdoc;  

分析xml字串,要求以'\0'結尾

std::string str(...);

doc.parse<0>(const_cast(str.c_str()));  

獲取節點

rapidxml::xml_node* node = doc.first_node("node name");  

遍歷所有節點

for(rapidxml::xml_node* node = parent_node->first_node("node name");

node != null;

node = node->next_sibling())

TinyXml 與 Rapidxml效率對照

曾經在做開發中一直使用tinyxml,在網上搜尋說rapidxml的效率比tinyxml高。個人比較喜歡追求效率。所以忍不住嘗試性使用rapidxml。rapidxml 的官方站點例如以下 rapidxml是乙個使用c 編寫的xml dom解析工具包,整個解析工具包包括在乙個標頭檔案裡。所以使用時不...

boost生成xml與tinyxml之間的格式轉換

ifndef simulation structures h define simulation structures h include include boost serialization vector.hpp include boost archive xml oarchive.hpp in...

TinyXML應用例子

前些時候我恰好就用tinyxml寫了乙個比較通用的配置檔案類,基本可以適應大部分的場合,不過配置檔案只支援兩層結構,如果需要支援多層巢狀結構,那還需要稍加擴充套件一下。從下面的源 中,你也可以看到怎麼去使用tinyxml,也算是它的乙個應用例子了。filename config.h author h...