2010-07-13 4 views
0

Более конкретно большие веб-страницы XML (RSS-каналы). Я использую отличную библиотеку Рима для их анализа, но страница, которую я пытаюсь получить, действительно большая, и у Java заканчивается память, прежде чем получить весь документ.Разбор больших RSS-каналов с использованием Рима, нехватка памяти

Как я могу разбить веб-страницу, чтобы передать ее в XMLReader? Должен ли я просто сделать это сам и передать каналы по частям после добавления моего собственного XML, чтобы начать и закончить их?

+0

Насколько это велико? –

+0

В дополнение к тому, насколько велика XML, как вы собираетесь ее обрабатывать? Что вы анализируете в XML? Субоптимальный код может вызвать это так же легко, как большой файл. – Freiheit

+0

Данный вопрос представляет собой http://www.upstreamonline.com/rss2/companynews согласно http://www.websiteoptimization.com/services/analyze/ его 346576 байт. На данный момент я просто передаю URL-адрес в ROME, предоставленном классу XmlReader, который затем передается в (снова ROMEs) SyndFeedInput(), где программа затем выдает исключение примерно на ~ 6000-й строке веб-страницы. Я запускаю программу из приглашения cmd, поскольку я хочу, чтобы программа была независимой от платформы, из моей IDE она работает нормально. –

ответ

0

Прежде всего, научитесь задавать параметры командной строки java для Xms и Xmx для соответствующих значений, все парсеры, основанные на DOM, кажутся огромными объемами памяти. Второй взгляд на использование Pars Parser, ему не придется загружать весь XML в документ перед его обработкой.