逐行解析一个轻量级解析器的巨大XML文件

时间:2012-11-04 15:19:05

标签: c++ xml xml-parsing

我正在为Linux编写一个独立的小工具,需要读取一个巨大的xml文件。

xml文件结构简单,渐进式或流式(逐行)解析器适合它。

我想使用像TinyXML这样的轻量级类库,但我不知道它是否支持渐进式解析?!

如果答案是“是”,你有样品吗?并且,如果答案是“否”,您是否知道另一种替代方案,即小型和仅限标题的类库?

更新: RapidXML或pugiXML怎么样?

1 个答案:

答案 0 :(得分:5)

听起来像libxml的XmlReader interface正是你想要的。快速,简单和流媒体。不幸的是,轻量级和XML不混合。我更喜欢XmlReader的拉模型到SAX的推模型,但他们都会做你想要的。

在拉模型中,您调用一个函数并获取一个新节点,然后检查自己是否匹配。在推模型中,当它找到与它们匹配的节点时,您提供回调和SAX调用它们。

TinyXML,我最后检查过,不符合标准 - 我会避免它。