【问题标题】:How to get correct data in a large xml file?如何在大型 xml 文件中获取正确的数据?
【发布时间】:2012-01-16 13:14:13
【问题描述】:

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

我尝试了 TinyXmlXalan-C,但它们都使用 DOM,因此会导致 out of memory 问题。

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

【问题讨论】:

    标签: c++ xml xpath large-data


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        Saxon-EE XSLT 处理器可以在流模式下处理 XSLT 的子集(即,无需在内存中构建树)。详情见

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

        它不是 C/C++,但你没有说这是否是一个硬约束。

        【讨论】:

          猜你喜欢
          • 2012-03-06
          • 2013-08-07
          • 1970-01-01
          • 1970-01-01
          • 2011-04-13
          • 2020-07-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多