2010-07-13 36 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加载到文档中。