Цикличное выполнение посредством записей канала с Римом

Я пытаюсь циклично выполниться посредством записей Atom-ленты, и получить атрибут заголовка позволяет, говорят, я нашел эту статью, я попробовал, это отрезало кода:

for (final Iterator iter = feeds.getEntries.iterator();
     iter.hasNext(); )
{
    element = (Element)iter.next();
    key = element.getAttributeValue("href");
    if ((key != null) &&
        (key.length() > 0))
    {
        marks.put(key, key);
    }

   //Don't have to put anything into map just syso title would be enough
}

Но я получаю высказывание исключения:

java.lang. ClassCastException: com.sun.syndication.feed.synd. SyndEntryImpl не может быть брошен к org.jdom. Элемент в com.emir.altantbh. FeedReader.main(FeedReader.java:47)

Что я делал неправильно? действительно ли кто-либо может направить меня к лучшему учебному руководству или показать мне, где я делал ошибку, я должен циклично выполниться посредством записей и значения тега заголовка извлечения.спасибо

6
задан Paul Tomblin 11 May 2011 в 22:59
поделиться

1 ответ

SyndFeed.getEntries() возвращает List из SyndEntryImpl. Вы не можете приводить из SyndEntryImpl в org.jdom.Element.

Вы можете перебирать все SyndEntry следующим образом:

for (final Iterator iter = feed.getEntries().iterator();
     iter.hasNext(); )
{
    final SyndEntry entry = (SyndEntry) iter.next();
    String title = entry.getTitle();
    String uri = entry.getUri();
    //...
}

API ссылки


Вы также можете попробовать это, если используете Java 5.0 и выше:

for (SyndEntry entry : (List<SyndEntry>) feed.getEntries()) {
    String title = entry.getTitle();
    String uri = entry.getUri();
    //...
}

Здесь есть непроверенное приведение, но оно должно быть безопасным, исходя из спецификации getEntries().

См. также

8
ответ дан 16 December 2019 в 21:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: