RSS es una de las ideas mas simples y mas exitosas de los ultimos tiempos. Es simplemente una manera de compartir informacion de una manera standard.
RSS significa Really Simple Sindication y no es nada mas que un formato XML standard el cual muchisimos blogs y sitios de noticias usan para publicar sus noticias asi los newreaders (como netvibes o igoogle) pueden prooveer a sus usuarios de una manera humana para leer esos feeds.
En este articulo vamos a ver como usando la API ROME se puede escribir RSS con solo un par de lineas de codigo.
Primero que nada van a tener que bajar 2 archivos JAR e incluirlos en tus libraries.
A continuacion la clase completa del RSSWriter y debajo el uso.
import java.io.Writer;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.sun.syndication.feed.synd.SyndContentImpl;
import com.sun.syndication.feed.synd.SyndEntryImpl;
import com.sun.syndication.feed.synd.SyndFeed;
import com.sun.syndication.feed.synd.SyndFeedImpl;
import com.sun.syndication.io.SyndFeedOutput;
/**
* @author: Rodrigo Asensio - rasensio@gmail.com
*/
public class RSSWriter {
SyndFeed feed = new SyndFeedImpl();
public RSSWriter() {
this.feed.setFeedType("rss_2.0");
}
public void setTitle(String title) {
this.feed.setTitle(title);
}
public void setType(String type) {
this.feed.setFeedType(type);
}
public void setLink(String link) {
this.feed.setLink(link);
}
public void setDescription(String description) {
this.feed.setDescription(description);
}
public void addEntry(String title, String link, Date date, String text) {
SyndEntryImpl entry = new SyndEntryImpl();
entry.setTitle(title);
entry.setLink(link);
entry.setPublishedDate(date);
SyndContentImpl description = new SyndContentImpl();
description.setType("text/plain");
description.setValue(text);
entry.setDescription(description);
List entries = this.feed.getEntries();
if (entries == null) {
entries = new ArrayList();
this.feed.setEntries(entries);
}
entries.add(entry);
}
public void serialize(Writer writer) throws Exception {
SyndFeedOutput output = new SyndFeedOutput();
output.output(this.feed, writer);
}
public String serialize() throws Exception {
SyndFeedOutput output = new SyndFeedOutput();
return output.outputString(this.feed);
}
El uso basico para esta clase seria….
RSSWriter writer = new RSSWriter();
writer.setTitle("Some title");
writer.setDescription("Some description");
writer.setLink("http://yourdomain.com");
writer.addEntry("news 1", "http://yourdomain.com/news1", new Date(), "some text");
// write to xml
writer.serialize(new PrintWriter("/var/www/mysite/rss.xml"));




