我需要从Jython解析一个大的(> 800MB)XML文件。 XML没有深度嵌套,包含大约一百万个相关元素。我需要将这些元素转换为真实对象。
我以前曾经成功使用过nu.xom.*
,但是现在我已经从Java切换到Jython,该库失败并显示以下消息:
解析器遇到的不只是
在此“ 64,000”实体扩展
文献;这是施加的限制
应用程序。
我还没有找到解决此问题的方法,因此我可能不得不寻找另一个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.