参见英文答案 >
What XML parser should I use in C++?4个答案我正在寻找一个简单,干净,正确的XML解析器在我的C项目中使用。我应该自己写吗?
RapidXML怎么样? RapidXML是一个用C语言编写的非常快速和小型的XML DOM解析器。它主要针对嵌入式环境,计算机游戏或任何其他可用内存或cpu处理能力非常昂贵的应用程序。 RapidXML是根据Boost软件许可证授权的,其源代码是免费提供的。
原文链接:https://www.f2er.com/xml/294359.html特征
>解析速度(包括DOM树
建筑)接近速度
strlen函数执行
相同的数据。
>在现代cpu(2008年)
解析器的吞吐量约为10亿
字符/秒。看到
性能部分在线
手册。
>代码的内存占用量小
并创建DOM树。
>只有头的实现,
简化了集成过程。
>允许使用的简单许可证
几乎任何目的,都是商业
和非商业性,没有任何
义务。
>支持UTF-8和部分UTF-16,
UTF-32编码。
>可移植源代码,没有
依赖性非常小
C标准库子集。
>这个子集太小了,它可以
如果使用,容易被手动仿真
的标准库是不希望的。
限制
>解析器忽略DOCTYPE
声明。
>不支持XML命名空间。
>解析器不检查
字符有效性。
>解析器的接口没有
符合DOM规范。
>解析器不检查
属性唯一性。
根据您的使用,您可以使用XML数据绑定? CodeSynthesis XSD是由Code Synthesis开发的一个XML数据绑定编译器,并且是根据GNU GPL和专有许可证的双授权。给定一个XML实例规范(XML Schema),它生成表示给定词汇表以及解析和序列化代码的C类。
CodeSynthesis XSD的独特功能之一是它支持两种不同的XML模式到C映射:内存中C / Tree和面向流的C / Parser。 C / Tree映射是具有树状,内存中数据结构的传统映射。 C / Parser是一种新的类SAX映射,它将存储在XML实例文档中的信息表示为词汇特定解析事件的层次结构。与C / Tree相比,C / Parser映射允许处理不适合存储器,执行面向流的处理或使用现有的内存中表示的大型XML文档。