1

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

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

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

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

更新: RapidXML 或 pugiXML 怎么样?

4

1 回答 1

5

听起来 libxml 的XmlReader 接口正是您想要的。快速、简单和流式传输。不幸的是,轻量级和 XML 不能混合使用。我更喜欢 XmlReader 的 pull 模型而不是 SAX 的 push 模型,但它们都会做你想做的事。

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

我上次检查的 TinyXML 不符合标准——我会避免使用它。

于 2012-11-04T15:30:48.217 回答