如何在大型xml文件中获取正确的数据?

时间:2011-12-09 07:10:39

标签: c++ xml xpath large-data

我有一个大型xml文件(包含几百万条记录),需要获取 100条记录(基于{{1或类似的东西)

我尝试了 TinyXml Xalan-C ,但他们都使用了id,因此会导致DOM问题。

是否有一个C / C ++库可以做到这一点而无需将所有数据作为out of memory加载到内存中?

3 个答案:

答案 0 :(得分:2)

Apache Xerces怎么样? 它非常成熟并且针对性能进行了优化(即它不会将完整的文件读入内存!)。

答案 1 :(得分:1)

您需要一个SAX解析器,例如Xerces

答案 2 :(得分:0)

Saxon-EE XSLT处理器可以在流模式下处理XSLT的子集(即,不在内存中构建树)。有关详细信息,请参阅

http://www.saxonica.com/documentation/sourcedocs/streaming.xml

这不是C / C ++,但你没有说这是否是一个严格的约束。