2011-11-07 121 views
-3

我必须从xml文件读取500K行,并且必须解析xml。xml大小为30 MB。 当我们执行解析时,它会给我们提供内存不足的错误。反正有或机构可以建议XML阅读和解析

+0

这个问题根本没有帮助...需要一些额外的信息,尤其是,什么解析器被使用(我假设一些DOM解析器 - 但我只是猜测...) –

+0

你如何阅读文件?不要将整个文件加载到DOM树中... –

+0

@gaurav您应该使用saxparser来比其他解析器快速xml解析,并且如果outofmemoryError发生,您必须更改xml文件ane减少数据,因为它需要比java堆更多的空间大小如此它创造prblm! –

回答

3
  • 使用SAX解析器
  • 你可能会在内存中存储解析的内容。这不是一个好主意。
+0

我也使用SAX和DOM解析器,它也给出了OutOfMemory错误 – gaurav

+0

另外我也使用DOM和SAX来读取文件,我必须读取文件,然后通过FOP转换成PDF ......但它是给我两个OutOf内存错误在两种方式 – gaurav

+2

或者不将所有内容都存储在内存中,或者使用-Xmx512m(对于512 MB)增加堆内存。 SAX或StAX应该更轻量一些,因为在内存中只有一个数据表示。 –