TinyXml 與 Rapidxml效率對照

2021-09-07 11:22:22 字數 837 閱讀 8589

曾經在做開發中一直使用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...