2011-11-07 126 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應該更輕量一些,因爲在內存中只有一個數據表示。 –