【发布时间】:2017-11-10 14:59:46
【问题描述】:
我想找到一个强大的程序,它可以读取大型 XML/GML 文件并且我可以简单地搜索。我有一个 240 mb 大的文件,但我找不到任何可以做到这一点的软件。
用例很简单:加载一个大文件并使用 XPath 搜索查找内容。就是这样!
您对此有什么建议吗?我已经尝试过 XML 编辑器(XPath 不起作用)和 Liquid XML,其中 XPath 由于性能(太大的 XML 文件)而被自动禁用。
【问题讨论】:
我想找到一个强大的程序,它可以读取大型 XML/GML 文件并且我可以简单地搜索。我有一个 240 mb 大的文件,但我找不到任何可以做到这一点的软件。
用例很简单:加载一个大文件并使用 XPath 搜索查找内容。就是这样!
您对此有什么建议吗?我已经尝试过 XML 编辑器(XPath 不起作用)和 Liquid XML,其中 XPath 由于性能(太大的 XML 文件)而被自动禁用。
【问题讨论】:
Oxigen XML 编辑器也可以管理 1G xml,但它不是免费的 https://www.oxygenxml.com/
【讨论】:
250Mb 大约是您可以在没有流式传输的情况下在 Saxon 中轻松处理的极限 - 给定 2Gb 内存应该是可能的(您必须构建自己的 Java 应用程序来加载数据,然后接受搜索并显示结果)。如果 XPath 表达式足够简单,那么 Saxon 的企业版能够以流模式评估 XPath,即在文档的单次传递期间,无需在内存中构建整个文档树。但是您描述问题的方式听起来好像您想对文档运行多次搜索,在这种情况下,为树分配内存的解决方案可能更好。
您可以尝试的一件事是在加载过程中过滤文档以消除不需要的部分;如果你能把它减半到 120Mb,你的大部分问题都会消失。
【讨论】: