我正在为Linux编写一个独立的小工具,需要读取一个巨大的xml文件。
xml文件结构简单,渐进式或流式(逐行)解析器适合它。
我想使用像TinyXML这样的轻量级类库,但我不知道它是否支持渐进式解析?!
如果答案是“是”,你有样品吗?并且,如果答案是“否”,您是否知道另一种替代方案,即小型和仅限标题的类库?
更新: RapidXML或pugiXML怎么样?
答案 0 :(得分:5)
听起来像libxml的XmlReader interface正是你想要的。快速,简单和流媒体。不幸的是,轻量级和XML不混合。我更喜欢XmlReader的拉模型到SAX的推模型,但他们都会做你想要的。
在拉模型中,您调用一个函数并获取一个新节点,然后检查自己是否匹配。在推模型中,当它找到与它们匹配的节点时,您提供回调和SAX调用它们。
TinyXML,我最后检查过,不符合标准 - 我会避免它。