加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 通过罗马的feed条目循环

发布时间:2020-12-15 01:02:12 所属栏目:Java 来源:网络整理
导读:我正在尝试循环遍历Atom提要条目,并获取title属性让我们说,我找到了 this文章,我尝试了这段剪辑代码: for (final Iterator iter = feeds.getEntries.iterator(); iter.hasNext(); ){ element = (Element)iter.next(); key = element.getAttributeValue("hre
我正在尝试循环遍历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
cannot be cast to org.jdom.Element at
com.emir.altantbh.FeedReader.main(FeedReader.java:47)

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

解决方法

SyndFeed.getEntries()返回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链接

> com.sun.syndication.feed.synd.SyndEntry
> com.sun.syndication.feed.synd.SyndFeed
> java.util.List

如果您使用的是Java 5.0及更高版本,也可以尝试这样做:

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

这里有未经检查的强制转换,但它应该是基于getEntries()规范的安全.

也可以看看

> Java language guide/for-each loop
> Java tutorials/generics

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读