微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用XmlSlurper解析(非常)大型XML文件

我是Groovy的新手,我正在尝试使用XmlSlurper读取一个(相当)大的 XML文件(超过1Gb),因为它不构建整个DOM,所以它应该可以处理大文件的奇迹.在记忆中.

尽管如此,我仍然得到“OutOfMemoryError:Java堆空间”,这让我觉得显然有些东西我做错了.我尝试增加Xmx设置,但我宁愿解决问题,因为我可能不得不处理更大的文件.

这是我使用的代码行:

def posts = new XmlSlurper().parse(new File("posts.xml"))

什么是错的暗示?

提前致谢,

热雷米.

Groovy的XmlSlurper是一个SAX解析器,但将整个模型加载到内存中……

为避免OOM异常,您可能需要提高内存容量(如您所说,使用-Xmx设置),或者您可以write your own SAX parser从文档中获取所需的数据

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。