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

java – 使用罗马的有效RSS 2.0

发布时间:2020-12-15 00:45:46 所属栏目:Java 来源:网络整理
导读:我使用 rome 1.0为我的java应用程序生成RSS. 在我的java中: SyndFeed feed = new SyndFeedImpl(); feed.setFeedType( "rss_2.0" ); feed.setTitle( "My Site" ); feed.setLink( "http://example.com" ); feed.setDescription( "Test Site." ); ListSyndEntr
我使用 rome 1.0为我的java应用程序生成RSS.

在我的java中:

SyndFeed feed = new SyndFeedImpl();
    feed.setFeedType( "rss_2.0" );
    feed.setTitle( "My Site" );
    feed.setLink( "http://example.com" );
    feed.setDescription( "Test Site." );    

    List<SyndEntry> entries = new ArrayList<SyndEntry>();
    SyndEntry entry = null;
    SyndContent description = null;

    entry = new SyndEntryImpl();
    entry.setTitle( "Entry1" );
    entry.setLink( "http://example.com/entry1" );
    entry.setPublishedDate( new Date() );

    description = new SyndContentImpl();
    description.setType("text/html");
    description.setValue( "This is the content of entry 1." );
    entry.setDescription( description );

    entries.add( entry );
    feed.setEntries(entries);

    Writer writer = new FileWriter("/home/jr/Desktop/stream.xml");
    SyndFeedOutput output = new SyndFeedOutput();
    output.output(feed,writer);
    writer.close();

生成的RSS:

<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>My Site</title>
    <link>http://example.com</link>
    <description>Test Site.</description>
    <item>
      <title>Entry1</title>
      <link>http://example.com/entry1</link>
      <description>This is the content of entry 1.</description>
      <pubDate>Fri,09 Nov 2012 01:28:57 GMT</pubDate>
      <guid>http://example.com/entry1</guid>
      <dc:date>2012-11-09T01:28:57Z</dc:date>
    </item>
  </channel>
</rss>

RSS验证here后,它有以下建议:

>项目不应包括pubDate和dc:date
>缺少原子:与rel =“self”链接

如何在罗马图书馆做推荐?生成的RSS是否正常?

谢谢.

解决方法

在你的自定义SyndFeed类中,确保你将Date变量命名为与SyndFeed类上的名称不同(即:而不是’publishedDate’,使用类似’pubDate’的东西.这似乎解决了我的问题.
public class CustomSyndFeed extends SyndFeedImpl {

protected Date pubDate;

    @Override
    public Date getPublishedDate() {
        return pubDate;
    }

    @Override
    public void setPublishedDate(final Date pubDate) {
        this.pubDate = new Date(pubDate.getTime());
    }
}

(编辑:李大同)

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

    推荐文章
      热点阅读