我正在寻找一个简单、干净、正确的 XML 解析器来在我的 C++ 项目中使用。我应该自己写吗?
怎么样RapidXML http://rapidxml.sourceforge.net/? RapidXML 是一个用 C++ 编写的非常快速且小型的 XML DOM 解析器。它主要针对嵌入式环境、计算机游戏或可用内存或 CPU 处理能力非常宝贵的任何其他应用程序。 RapidXML 根据 Boost Software License 获得许可,其源代码可免费获取。
Features
- 解析速度(包括DOM树
建筑物)接近速度
strlen 函数执行于
相同的数据。
- 在现代 CPU 上(截至 2008 年)
解析器吞吐量约为10亿
每秒字符数。看
在线表演部分
手动的。
- 代码占用内存小
并创建了 DOM 树。
- 仅标头实现,
简化集成过程。
- 简单的许可证,允许使用
几乎任何目的,包括商业用途
并且非商业性,无任何
义务。
- 支持UTF-8和部分UTF-16,
UTF-32 编码。
- 可移植源代码,无
除了非常小的依赖关系
C++ 标准库的子集。
- 这个子集是如此之小,以至于它可以
如果使用的话可以很容易地手动模拟
标准库是不受欢迎的。
局限性
- 解析器忽略 DOCTYPE
声明。
- 不支持 XML 命名空间。
- 解析器不检查
字符有效性。
- 解析器的接口不
符合DOM规范。
- 解析器不检查
属性的唯一性。
Source: wikipedia.org://Rapidxml http://en.wikipedia.org/wiki/Rapidxml
根据您的用途,您可以使用 XML 数据绑定吗?代码合成 XSD http://www.codesynthesis.com/products/xsd/是由 Code Synthesis 开发的用于 C++ 的 XML 数据绑定编译器,并根据 GNU GPL 和专有许可证获得双重许可。给定 XML 实例规范(XML Schema),它会生成表示给定词汇表以及解析和序列化代码的 C++ 类。
CodeSynthesis XSD 的独特功能之一是它支持两种不同的 XML 架构到 C++ 映射:内存中 C++/Tree 和面向流的 C++/Parser。 C++/树映射是具有树状内存数据结构的传统映射。 C++/Parser 是一种新的、类似 SAX 的映射,它将 XML 实例文档中存储的信息表示为词汇特定解析事件的层次结构。与 C++/Tree 相比,C++/Parser 映射允许处理无法放入内存的大型 XML 文档、执行面向流的处理或使用现有的内存中表示形式。
Source: wikipedia.org://CodeSynthesis XSD http://en.wikipedia.org/wiki/CodeSynthesis_XSD
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)