ROME 0.8 Parse Exception - PullRequest
       63

ROME 0.8 Parse Exception

1 голос
/ 07 декабря 2011

Я пытаюсь проанализировать RSS-каналы, используя ROME v0.8 (j2sdk1.4.2_07), но независимо от того, какой канал я использую, всегда выдается одна и та же ошибка.

com.sun.syndication.io.ParsingFeedException: неверный XML: ошибка при строка 14: тип элемента "meta" должен завершаться с помощью соответствующего конечный тег "".

import java.net.URL;

import com.sun.syndication.feed.synd.SyndFeed;
import com.sun.syndication.io.SyndFeedInput;
import com.sun.syndication.io.XmlReader;

public class RssTest {

    public static void main(String[] args) {

    try {

            System.out.println("starting...");
            URL feedUrl = new URL("http://www.abc.net.au/news/feed/51120/rss.xml");
            SyndFeedInput input = new SyndFeedInput();
            SyndFeed feed = input.build(new XmlReader(feedUrl));

            System.out.println("Feed Title: " + feed.getTitle());

        } catch (Exception ex) {
            System.out.println("Error: " + ex.getMessage());
        }
    }       
}

Ответы [ 2 ]

2 голосов
/ 07 декабря 2011

URL-адрес из вашего примера выглядит как правильно сформированный XML и не содержит тега meta, поэтому его должен анализировать Рим.Неопределенный тег meta создает впечатление, будто что-то возвращает HTML-страницу вместо фактического фида.Возможно, вы находитесь за прокси-сервером, который требует специального входа в систему?

0 голосов
/ 13 мая 2016

Используйте InputSource вместо XmlReader:

HttpURLConnection connection = (HttpURLConnection)url.openConnection();
InputStream is = connection.getInputStream();
InputSource source = new InputSource(is);
SyndFeedInput input = new SyndFeedInput();
feed = input.build(source);
...