5

我正在尝试找到支持 xpath 的 xml 解析器,它使用少量内存,或者说是恒定的内存量,我正在尝试解析大型 xml 文件,比如几乎 1 Giga ,我一直在阅读有关 xqilla 的信息,似乎是使用大量内存,因为它是基于 dom 的,如果我错了,请纠正我。无论如何,对于 C++ 和 linux 的这种 xml 解析器有什么想法吗?

4

3 回答 3

1

Saxon-EE 支持使用 XSLT 或 XQuery 对大型 XML 文档进行流式传输(XSLT 中的流式传输比 XQuery 更好)。详情在

于 2011-04-16T21:26:34.827 回答
1

如果您可以基本上一次处理 XML,那么 SAX 解析器将是一个好主意。Apache Xerces C++怎么样?

于 2011-04-16T09:35:46.527 回答
0

你可能会看

pugixml支持非常快速、方便和节省内存的 XML 文档处理。但是,由于 pugixml 有一个 DOM 解析器,它不能处理不适合内存的 XML 文档;解析器也是非验证的,所以如果你需要 DTD/Schema 验证,这个库不适合你

但是,它显然不是流解析器。我知道流式传输和 xpath 通常不能很好地运行(由于潜在的随机访问要求)。尽管如此,在 .NET 中,久负盛名的 XPathReader似乎弥补了 XPath 的一个流行子集的差距 :)

于 2011-04-16T19:13:57.133 回答