2016-04-05 4 views
2

Я создаю rss-канал в Java, используя ROME, но для жизни меня можно найти, как GUID на нем.Добавить guid в rss-файл ROME

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() не SyndFeedImpl(), как у меня в моем случае, и я не могу найти способ добавить элемент в свой SyndFeedImpl. Я предпочел бы иметь способ добавить руководство к SyndFeedImpl(), чем писать всю вещь

ответ

1

SyndFeed.setURI устанавливает уникальный идентификатор. В зависимости от типа корма, который вы создаете (атом/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> 

же записи как атом 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> 
+0

Это было! благодаря! Я просто использовал дату вместо URL-адреса, чтобы сделать его уникальным. например, 'entry.setUri (новая дата(). toString()); –