我需要从 Jython 解析一个大的 (>800MB) XML 文件。 XML 没有深度嵌套,包含大约一百万个相关元素。我需要将这些元素转换成真实的对象。
我之前曾成功使用过 nu.xom.*
,但现在我已从 Java 切换到 Jython,该库失败并显示以下消息:
The parser has encountered more than "64,000" entity expansions in this document; this is the limit imposed by the application.
我还没有找到解决这个问题的方法,所以我可能必须寻找另一个 XML 库。它可以是 Java 或 Jython 兼容的 Python,并且应该是高效的。 Pythonic 会很棒,nu.xom.*
很简单,但不是很 Pythonic。您有什么建议吗?
最佳答案
Sax 是解析大型文档的最佳方式。
听起来您已经达到了默认扩展限制。 请参阅此注释:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4843787
您需要设置系统属性“entityExpansionLimit”才能更改 默认值。
(已添加)另请参阅answer to this question.
关于java - 在 Jython 中解析大型 XML 文档的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5094042/