适用于 C++ 的最佳开放式 XML 解析器是什么? [复制]

2024-03-17

我正在寻找一个简单、干净、正确的 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(使用前将#替换为@)

适用于 C++ 的最佳开放式 XML 解析器是什么? [复制] 的相关文章

随机推荐