4

我正在使用 ROME 在 Java 中创建一个 rss 提要,但对于我的生活,我可以找到它的 GUID。

public boolean addRss(String msg,String msgLink,Date date){
        List<SyndEntry> entries = new ArrayList<SyndEntry>();
        SyndEntry entry; 
        entry = new SyndEntryImpl();
        entry.setTitle(msg);
        if(msgLink!=null){
            entry.setLink(msgLink);
        }       
        entry.setPublishedDate(date);
         entries.add(entry);
         feed.setEntries(entries);

        return true;
    }

此代码适用于创建 RSS 项目。问题是我需要添加时间戳作为 GUID。所以我尝试使用 Guid 对象

Guid g=new Guid();
g.setValue(date.toString());
g.setPermaLink(false);

但我找不到将其添加到我的项目的方法,例如没有entry.setGuid(Guid)

编辑
事实证明,Guid()可以像我的情况那样将其添加到Item()非 a中,并且我找不到将项目添加到 SyndFeedImpl 的方法。SyndFeedImpl()我宁愿通过某种方式向 SyndFeedImpl() 添加 guid,也不愿重新编写整个内容

4

1 回答 1

5

SyndFeed.setURI设置唯一标识符。根据您创建的提要类型(atom/rss),生成的 xml 会有所不同,但无论如何标识符都会存在:

SyndEntry entry = new SyndEntryImpl();
entry.setTitle("entry title 1");
entry.setUri("http://localhost/feed/item1GUID");
entry.setLink("http://localhost/feed/item1");

结果为 rss 2.0:

<item>
<title>entry title 1</title>
<link>http://localhost/feed/item1</link>
<guid isPermaLink="false">http://localhost/feed/item1GUID</guid>
</item>

与 atom 1.0 相同的条目:

<entry>
<title>entry title 1</title>
<link rel="alternate" href="http://localhost/feed/item1" />
<author>
<name />
</author>
<id>http://localhost/feed/item1GUID</id>
</entry>
于 2016-04-06T11:59:23.580 回答