轻量级C++ SAX XML解析器

Joh*_*mew 9 c++ xml sax

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

任何人都可以推荐一个带有SAX接口的轻量级C++ XML库吗?

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

thi*_*zzy 6

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

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

它解析输入流并在与std :: function兼容的回调上生成事件

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


sbi*_*sbi 5

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