通过罗马的供稿条目循环

时间:2010-05-13 09:18:04

标签: java rome

我正在尝试遍历Atom提要条目,并获取title属性,我发现this文章,我试过这段代码:

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.Element   com.emir.altantbh.FeedReader.main(FeedReader.java:47)

我做错了什么?任何人都可以指导我更好的教程或告诉我在哪里弄错了,我需要循环条目并提取标题标签值。谢谢

1 个答案:

答案 0 :(得分:8)

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()的规范,它应该是安全的。

另见