gpt4 book ai didi

java-如何使用 Saxon 库处理大型 XML 文件

转载 作者:行者123 更新时间:2023-11-29 05:51:10 25 4
gpt4 key购买 nike

在我正在开发的应用程序中,我必须处理非常大的 XML 文件(文件大小高达 2GB)...我想使用 Saxon java 库对这些文件运行一些 XQuery 命令。

我该怎么做,一次只将文件中的一小部分记录保存在内存中,并以如此小的数据集处理文件(而不是一次处理整个文件) -- 同时,XQuery 命令的输出应该是正确的?我宁愿使用只有 0.5GB RAM 的机器来运行 XQuery 命令 --> 所以不可能一次将整个 XML 加载到内存中。

最佳答案

Saxon 对流处理的支持在 XSLT 中实际上比在 XQuery 中更强,这主要是因为 XSLT 工作组在设计 XSLT 3.0 时一直在解决这个问题。您可以在以下位置找到有关产品流媒体功能的信息

http://www.saxonica.com/documentation9.4-demo/index.html#!sourcedocs/streaming

请注意,这些仅在商业版 Saxon-EE 中可用。

对于简单的“突发模式”流式传输,您可以执行以下操作:

对于 $e in saxon:stream(doc('big.xml')/*/record[@field='234']) 返回 $e/name

我所说的“突发模式”本质上是指对源文档的大量不相交的小子树进行操作的查询。

关于java-如何使用 Saxon 库处理大型 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13802737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com