以前在做开发中一直使用TinyXml,在网上搜索说Rapidxml的效率比tinyXml高。个人比较喜欢追求效率,所以忍不住尝试性使用Rapidxml。RapidXml 的官方网站如下: http://rapidxml.sourceforge.net/manual.html。
RapidXml是一个使用C++编写的XML DOM解析工具包,整个解析工具包包含在一个头文件中,所以使用时不用编译也不用连接。只要包含rapidxml中的三个头文件即可。RapidXml 试图成为最快的 XML DOM 解析工具包,同时保证解析结果的可用性、可移植性以及与 W3C 标准的兼容性。在操作同一数据时,其解析速度接近于 strlen() 函数。以下是RapidXml提供的常见xml库效率对照表,其中还很牛鼻地提供了和strlen()函数的效率对比。如下图是官方提供的对比数据:
二、简单使用
包含必要的头文件
#include "rapidxml.hpp"
创建文档对象
rapidxml::xml_document<char> doc;
分析xml字符串,要求以'\0'结尾
std::string str(...);
doc.parse<0>(const_cast<char *>(str.c_str()));
获取节点
rapidxml::xml_node<char> * node = doc.first_node("node name");
遍历所有节点
for(rapidxml::xml_node<char> * node = parent_node->first_node("node name");
node != NULL;
node = node->next_sibling())
{
...
}
本文介绍了一种高效的XML解析库RapidXml,并通过与TinyXml等常见XML库的对比展示了其出色的性能。文章提供了RapidXml的基本使用示例,包括文档对象的创建、XML字符串的解析及节点的获取与遍历。

1万+

被折叠的 条评论
为什么被折叠?



