c – 使用Boost读取和写入XML文件

有什么好的方法(和一个简单的方法)使用Boost读取和写入XML文件?

我似乎找不到任何简单的示例使用Boost读取XML文件。你能给我一个简单的示例,使用Boost读取和写入XML文件吗?

如果不是Boost,有没有任何好的和简单的库读取和写入XML文件,你可以推荐? (它必须是一个C库)

你应该尝试pugixml轻量级,简单和快速的XML解析器C

关于pugixml的最好的事情是XPath支持,TinyXML和RapidXML缺乏。

引用RapidXML的作者“我要感谢Arseny Kapoulkine在pugixml上的工作,这是这个项目的灵感”,“比pugixml快5% – 30%,这是我所知道的最快的XML解析器”他已经针对版本0.3进行了测试的pugixml,已达到最近的版本0.42。

这里是pugixml文档的摘录:

主要特点是:

>低内存消耗和碎片化(胜过pugxml是〜1.3倍,TinyXML〜2.5倍,Xerces(DOM)〜〜4.3倍1)。在与现有解析器的比较部分中可以看到精确的数字。
>极高的解析速度(胜过pugxml是〜6倍,TinyXML〜〜10倍,Xerces-DOM〜〜17.6倍1
>极高的解析速度(好吧,我重复自己,但它是这么快,它在测试XML上胜过Expat 2.8倍)2
>或多或少标准一致(它将解析任何符合标准的文件正确,除了DTD相关问题)
>几乎没有错误(它不会像You& Me这样的东西,像expat的;它会解析文件与编码错误的数据;等等)
>干净的接口(一个严重重构的pugxml的一个)
>更多或更少的Unicode感知(实际上,它假设输入数据的UTF-8编码,虽然它将很快与ANSI – 没有UTF-16现在(见未来的工作),辅助转换功能(UTF-8& ; – > UTF-16/32(无论是std :: wstring& wchar_t的默认值))
>完全符合标准C代码(经Comeau严格模式批准);该库是多平台(参见平台列表的参考)
>高度灵活性。您可以通过解析选项控制文件解析和DOM树构建的许多方面。

好吧,你可能会问 – 什么东西?一切都很可爱 – 它是小,快速,健壮,清洁的解决方案,用于解析XML。什么不见​​了?好吧,我们是公平的开发者 – 所以这里是一个错误的列表:

>内存消耗。它击败我知道的每个基于DOM的解析器 – 但是当SAX解析器来了,没有机会。您不能处理具有小于4 Gb内存的2 Gb XML文件 – 并且速度很快。虽然pugixml的行为比所有其他基于DOM的解析器更好,所以如果你被困在DOM,这不是一个问题。
>内存消耗。好吧,我在重复我自己。再次。当其他解析器允许您在常量存储(或甚至作为内存映射区域)中提供XML文件时,pugixml不会。因此,您必须将整个数据复制到非常量存储中。此外,它应该在解析器的生命期间持久(原因和更多的生命周期如下)。再次,如果你确定与DOM – 它不应该是一个问题,因为总体内存消耗较少(嗯,虽然你需要一个连续的内存块,这可能是一个问题)。
>缺少验证,DTD处理,XML命名空间,编码的正确处理。如果你需要那些 – 去采取MSXML或XercesC或类似的东西。

http://stackoverflow.com/questions/1042855/using-boost-to-read-and-write-xml-files

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:c – 使用Boost读取和写入XML文件