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

mas*_*oud 1 c++ xml xml-parsing

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

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

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

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

更新: RapidXML或pugiXML怎么样?

Cor*_*son 5

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

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

我检查过的TinyXML不符合标准 - 我会避免它.