【发布时间】:2012-01-16 13:14:13
【问题描述】:
我有一个 大型 xml 文件(包含大约 几百万条记录)并且需要获取大约 100 条记录(基于 id或类似的东西)
我尝试了 TinyXml 和 Xalan-C,但它们都使用 DOM,因此会导致 out of memory 问题。
是否有一个 C/C++ 库可以做到这一点,而无需将所有数据作为 DOM 加载到内存中?
【问题讨论】:
标签: c++ xml xpath large-data
我有一个 大型 xml 文件(包含大约 几百万条记录)并且需要获取大约 100 条记录(基于 id或类似的东西)
我尝试了 TinyXml 和 Xalan-C,但它们都使用 DOM,因此会导致 out of memory 问题。
是否有一个 C/C++ 库可以做到这一点,而无需将所有数据作为 DOM 加载到内存中?
【问题讨论】:
标签: c++ xml xpath large-data
Apache Xerces 怎么样? 它非常成熟并且针对性能进行了优化(即它不会将您的完整文件读入内存!)。
【讨论】:
Saxon-EE XSLT 处理器可以在流模式下处理 XSLT 的子集(即,无需在内存中构建树)。详情见
http://www.saxonica.com/documentation/sourcedocs/streaming.xml
它不是 C/C++,但你没有说这是否是一个硬约束。
【讨论】: