Я пытаюсь работать с rss и анализировать его. Я нашел в Риме, и я пытаюсь работать с этим кодом:Java - Rome: Я пытаюсь разобрать RSS-канал, но получить сообщение об ошибке на некоторых каналах
private SyndFeed parseFeed(String url) throws IllegalArgumentException, FeedException, IOException {
return new SyndFeedInput().build(new XmlReader(new URL(url)));
}
public Boolean processRSSContent(String url) {
try {
SyndFeed theFeed = this.parseFeed(url);
SyndEntry entry = theFeed.getEntries().get(0);
ZonedDateTime entryUtcDate = ZonedDateTime.ofInstant(entry.getPublishedDate().toInstant(), ZoneOffset.UTC);
String entryTitle = entry.getTitle();
String entryText = entry.getDescription().getValue();
}
catch (ParsingFeedException e) {
e.printStackTrace();
return false;
}
catch (FeedException e) {
e.printStackTrace();
return false;
}
catch (IOException e) {
e.printStackTrace();
return false;
}
}
На некоторых каналах, как http://feeds.bbci.co.uk/news/world/rss.xml все работает отлично, но на некоторых других каналах, как http://habrahabr.ru/rss/ я получаю ошибку:
Invalid XML: Error on line 5: The element type "meta" must be terminated by the matching end-tag "</meta>".
com.rometools.rome.io.ParsingFeedException: Invalid XML: Error on line 5: The element type "meta" must be terminated by the matching end-tag "</meta>".
Я взглянул на контент, стоящий за этой ссылкой, и xml действительно странный. Но это популярный сайт, и я получил эту ошибку на некоторых других сайтах, поэтому я не верю, что в xml есть проблема. Что я сделал не так? Как читать эти RSS-каналы? Может, кто-нибудь протянет мне руку помощи, пожалуйста?
Спасибо человеку! Помогает. – user3742622