2010-07-13 47 views
0

更具體地說是大型XML網頁(RSS源)。我正在使用優秀的羅馬圖書館來解析它們,但是我目前試圖獲得的頁面非常大,並且Java在獲取整個文檔之前內存不足。使用羅馬解析大型RSS源時,內存不足

如何拆分網頁以便將其傳遞給XMLReader?我應該自己做,並在添加自己的XML開始並完成它們後分別傳遞這些提要?

+0

究竟有多大? – 2010-07-13 16:41:22

+0

除了XML的大小之外,您如何處理它?什麼是解析XML到?次優代碼可能會像大文件一樣容易造成這種情況。 – Freiheit 2010-07-13 16:43:03

+0

根據http://www.websiteoptimization.com/services/analyze/的346576字節,有問題的Feed是http://www.upstreamonline.com/rss2/companynews 。 目前我只是將URL傳遞給ROME提供的XmlReader類,然後將其傳入(再次ROMEs)SyndFeedInput(),然後該程序在網頁的第6000行附近拋出異常。我從cmd提示符運行程序,因爲我希望該程序能夠獨立於平臺,從我的IDE工作正常。 – 2010-07-13 19:38:18

回答

0

首先學習將Xms和Xmx的java命令行選項設置爲適當的值,所有基於DOM的解析器都會導致每次內存負載過重。再來看看使用Pull Parser,在處理它之前,不需要將整個XML加載到文檔中。