I am kind of new to Groovy and I am trying to read a (quite) large XML file (more than 1Gb) using XmlSlurper, which is supposed to work wonders with large files due to the fact that it doesn't build the whole DOM in memory.
Nevertheless I keep getting "OutOfMemoryError : Java heap space" which makes me think that there obviously is something that I'm doing wrong. I tried increasing the Xmx setting but I would rather solve the problem since I may have to deal with even bigger files afterwards.
Here is the line of code I used:
def posts = new XmlSlurper().parse(new File("posts.xml"))
Any hint on what's wrong ?
Thanks in advance,
Jérémie.
Groovy's XmlSlurper
is a SAX parser, but loads the entire model into memory...
To avoid OOM exceptions, you probably need to either up your memory allowance (as you say, using the -Xmx
setting), or you can write your own SAX parser to get just the data you require from the document
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With