java - RSS 库 'feed4j' .getPubDate() 给出 'null'

标签 java rss feed reader

我正在尝试使用 feed4j 库做一个 RSS 阅读器,我编写了这个简单的代码:

import java.net.URL;

import it.sauronsoftware.feed4j.FeedParser;
import it.sauronsoftware.feed4j.bean.Feed;
import it.sauronsoftware.feed4j.bean.FeedHeader;
import it.sauronsoftware.feed4j.bean.FeedItem;
import javax.swing.*;

public class LettoreRSS{
    public static void main(String[] args) throws Exception
    {
        URL url = new URL("myxmlurl");
        Feed feed = FeedParser.parse(url);
        int items = feed.getItemCount();
        FeedHeader header = feed.getHeader();
        int dim=50;

        JFrame frm = new JFrame(header.getTitle()+" - Last News");
        frm.setResizable(false);
        frm.getContentPane().setLayout(null);
        frm.setBounds(10, 10, 600, 600);
        frm.setVisible(true);
        frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        for (int i=0;i<items;i++)
        {
            FeedItem item = feed.getItem(i);
            JLabel label = new JLabel();
            label.setBounds(0, dim*i, 600, 50);
            label.setHorizontalAlignment(SwingConstants.CENTER);
            label.setText(item.getTitle()+"   "+item.getPubDate());
            frm.add(label);
        }

    }
}

但是有一个问题:当我启动程序时,他写了标题,但 puDate 为“null”(我尝试为标题(FeedHeader header)写一个标签,而 header.getPubDate() 给出了 th我解决了吗?谢谢你!日期正确。我尝试的某些 xml 也是如此。 我该如何解决? 谢谢!

最佳答案

我遇到了同样的问题,我发现这是因为 it.sauronsoftware.feed4j.Constants.java 中定义的日期格式造成的这对我的提要来说是错误的。所以我实现了自己的获取日期的方法。喜欢:

for (int i = 0; i < feedItem.getNodeCount(); i++) {
            RawNode node = feedItem.getNode(i);
            if (node instanceof RawElement) {
                RawElement element = (RawElement) node;
                String name = element.getName();
                String value = element.getValue();
                if (value == null) {
                    return null;
                }
                if (name.equals(FEED_DATE_TAG)) {
                    try {
                        return new SimpleDateFormat(FEED_DATE_FORMAT, Locale.US).parse(value);
                    } catch (ParseException e) {
                        logger.error("could not parse date : {} ", e.getMessage());
                        return null;
                    }
                }
            }
        }

feed4j 日期格式化程序为:public DateFormat RFC_822_DATE_FORMAT = new SimpleDateFormat( “EEE”,“dd”“MMM”“yyyy”“HH:mm:ss”“z”,Locale.US);

关于java - RSS 库 'feed4j' .getPubDate() 给出 'null',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28656789/

相关文章:

java - JPA - 创建临时主键

java - 如何为从 spring amqp 消息完成的事务建立安全上下文

java - 你知道一个好的 Java RSS/Feed 生成器吗?

java - Logo 未向导航面板左侧对齐

php - SQL - 获取 RSS 提要并插入到 SQL 中

Wordpress rss feed 来自 https 的除外

ios - RSS 提要核心数据保存在 uitableview 中

gmail - 如何使用 GMail Atom feed 读取 GMail 标签?

facebook - 七层 hell (Feed 问题、照片发布问题等)

java - 替换文本: Suggestions?中的变量