初学 Rome 之解析RSS

Rome是一组Atom/Rss工具类,它使的用java来操作大部分syndication格式变的更加容易。

目前Rome的最新版本为0.9版,支持一下的格式:

           RSS 0.90, RSS 0.91 Netscape,
           RSS 0.91 Userland,
           RSS 0.92,
           RSS 0.93,
           RSS 0.94,
           RSS 1.0,
           RSS 2.0,
          Atom 0.3
          Atom 1.0

Rome不仅包括各种syndication feeds的解析器与生成器。而且还能够把一种格式转换成另一种格式的转换器。

环境搭建:

         1. 下载Rome

         2. Rome是使用JDOM来解析XML的,则需要下载JDOM

        3.  jdk

将下载的ROME和JDOM的jar包设置到开发环境,本人使用MyEeclipse作为开发环境,只要将rome-0.9.jar和jdom.jar添加到项目的文件库中即可

用Rome解析Rss,首先要创建SyndFeed对象:

           URLConnection feedUrl = new URL(" ..... ");

          SyndFeedInput  input = new SyndFeedInput();

         SyndFeed feed = input.buld(new XmlReader(feedUrl));

  通过SundFeed的对象,可以获得Rss源返回的信息如SyndFeed的getEntries方法可以返回一个List<SyndFeed>列表,用以表示Rss中的每一项内容。

        List<SyndEntry> entries = feed.getEntries();

       for(SyndEntry entry : entries){

                      String title = entry.getTitle();

                      Date publishDate = entry.getPublishDate();

                      String content = entry.getDescription()..getValue();

                     .................... 

}

   部分源代码:

       Vector<Rss> vector = new Vector<Rss>();
  
  try {
       String urlStr = "http://rss.sina.com.cn/news/marquee/ddt.xml";
  
      java.net.URLConnection feedUrl = new java.net.URL(urlStr).openConnection();
      SyndFeedInput input = new SyndFeedInput();
   SyndFeed feed = input
     .build(new XmlReader(feedUrl));
   
   
   //从feed中得到entry
    Rss rss = null;
   List<SyndEntry> entries = feed.getEntries();   
   for (SyndEntry entry : entries) {

    rss = new Rss();
    rss.setTitle(entry.getTitle());
    rss.setLink(entry.getLink());
    rss.setTime(entry.getPublishedDate());
    rss.setAuthor(entry.getAuthor());
   
   vector.addElement(rss);
   
    } 
   return vector;
  } catch (Exception e) {
   e.printStackTrace();
   return null;
  }

 

你可能感兴趣的:(exception,Date,rss,vector,String,input)