Feeds and Java

Last Update: 18.11.2006. By azarai in java

my contribution at http://mansourk.blogspot.com/ now here:

Since i got impressed how simple this was in python (thanks for this wonderful module), i got curious if there are libs in java and how simple they are. I found rome and commons feedparser (dont even look for a jar to download, just via svn and selfcompiling). Two nice libs, but both with a different approach of feedhandling. rome uses a dom and commons feedparser a sax like handling of the feed. But have a look at some really simple example for both.

rome:
The relevant code part

URL feedUrl = new URL("http://feeds.feedburner.com/RumblingsOfAFrustratedProgrammer");

SyndFeedInput input = new SyndFeedInput();  
SyndFeed feed = input.build(new XmlReader(feedUrl));  
for (Iterator iter = feed.getEntries().iterator(); iter.hasNext();) {  
  SyndEntry element = (SyndEntry) iter.next();  
  printEntry(element);  
}

printEntry just prints some part of the entry and was implemented by myself.

commons feedparser:

FeedParser parser = FeedParserFactory.newFeedParser();  
FeedParserListener listener = new DefaultFeedParserListener() {

   public void onItemEnd() throws FeedParserException {  
       super.onItemEnd();  
       System.out.println("article end");  
   }

   public void onChannel(FeedParserState state, String title, String link,  
                         String description) throws FeedParserException {

       System.out.println("Found a new channel: " + title);  
   }

   public void onItem(FeedParserState state, String title, String link,   
                  String description, String permalink)   
                   throws FeedParserException {  
       System.out.println(title);  
       System.out.println(description);  
       System.out.println(link);  
   }

   public void onCreated(FeedParserState state, Date date) throws FeedParserException {  
       System.out.println("Which was created on: " + date);  
   }

};

String resource = "http://feeds.feedburner.com/RumblingsOfAFrustratedProgrammer";  
ResourceRequest request = ResourceRequestFactory.getResourceRequest(resource);  
InputStream is = request.getInputStream();  
parser.parse(listener, is, resource);

Now you just need to know what to do with those feeds. Maybe i am gonna write my “feeds to xhtml page” stuff with all 3 libs for comparison and post it here.