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