轻量级C ++ SAX XML解析器

时间:2011-01-13 19:39:57

标签: c++ xml sax

我知道至少有三个轻量级C ++ XML解析器:RapidXMLTinyXMLPugiXML。但是,所有这三个都使用基于DOM的接口(即,它们构建自己的XML文档的内存中表示,然后提供遍历和操作它的接口)。对于我必须处理的大多数情况,我更喜欢SAX接口(解析器只是吐出一些事件流,比如start-of-tag,应用程序代码负责根据这些事件做任何想做的事情)

任何人都可以推荐带有SAX界面的轻量级C ++ XML库吗?

编辑:我还应该注意Microsoft XmlLite库, 使用SAX接口(实际上是一个“拉”接口,可能更好)。不幸的是,目前我已经排除了它,因为据我所知它只是封闭的来源和Windows(如果我错了,请纠正我)。

3 个答案:

答案 0 :(得分:6)

你可以尝试http://die-xml.googlecode.com/。它看起来非常小而且易于使用

这是最近制作的C ++ 0x XML SAX解析器开源,作者愿意反馈

它解析输入流并在与std :: function

兼容的回调上生成事件 堆栈机器使用有限自动机作为后端,并且一些事件(开始标记和文本节点)使用迭代器以最小化缓冲,使其非常轻量级

答案 1 :(得分:5)

当我需要解析XML时,我使用了expat。这是非常轻量级的(好吧,以前它已经有一段时间了,因为我已经完成了XML的工作)并完成了这项工作。

答案 2 :(得分:-1)

PugiXML和RapidXML没有符合DOM的接口。这些API在功能和一致性方面存在严重限制。您可能想要研究明显比DOM或SAX / Pull

更高级的VTD-XML