初用rome

Rome 是 java.net 上的一个开源项目,不仅包括各种syndication feeds的解析器与生成器,而且还包括能够把一种格式转换成另外一种格式的转换器。

 如下是我生成网站的rss的代码:

java 代码
  1. // Rome中RSS的可选标准       
  2. // rss_0.90, rss_0.91, rss_0.92, rss_0.93, rss_0.94, rss_1.0, rss_2.0, atom_0.3        
  3. private static final String RSS_TYPE = "rss_2.0";    
  4.  // 取出频道下面的所有文章       
  5.   
  6.  public ActionForward execute(ActionMapping mapping, ActionForm form,   
  7.    HttpServletRequest request, HttpServletResponse response)   
  8.    throws Exception {   
  9.              
  10.      //  得到RSS数据操作接口   
  11.     RssDao rssDao = (RssDao)getBean(RssDao.class);   
  12.         
  13.      Channel channel = "频道对象";   
  14.              
  15.      List articles = "查询出来的所有频道文章";   
  16.              
  17.      outputRssFeed(response, rssDao.createChannelFeed(channel, articles));   
  18.         
  19.      return null;   
  20.     }   
  21.   
  22.     
  23.   
  24.  // 将SyndFeed写入HttpServletResponse       
  25.     private boolean outputRssFeed(HttpServletResponse response, SyndFeed feed) {       
  26.         boolean result = false;       
  27.         feed.setFeedType(RSS_TYPE);       
  28.         response.setContentType(MIME_TYPE);       
  29.         SyndFeedOutput output = new SyndFeedOutput();      
  30.         try {       
  31.             output.output(feed, response.getWriter());       
  32.             result = true;       
  33.         } catch (IOException e) {       
  34.             e.printStackTrace();       
  35.         } catch (FeedException e) {       
  36.             e.printStackTrace();       
  37.         }       
  38.         return result;       
  39.     }     
  40.   
  41.     
  42.   
  43.    //rssDao的方法   
  44.   public SyndFeed createChannelFeed(Channel channel,List articles){   
  45.   SyndFeed feed = new SyndFeedImpl();   
  46.      
  47.       // 设置RSS标题   
  48.         feed.setTitle(channel.getTitle() + "频道");   
  49.            
  50.         // 设置标题的链接   
  51.         feed.setLink("http://*******");   
  52.            
  53.         // 设置描述   
  54.         feed.setDescription(channel.getDescription());   
  55.            
  56.         feed.setEntries(getChannelEntries(articles));    
  57.            
  58.   return feed;   
  59.  }   
  60.     
  61.  private List getChannelEntries(List articles) {    
  62.   List entries = new ArrayList();       
  63.         SyndEntry entry;       
  64.         SyndContent description;       
  65.            
  66.         // 创建item集合   
  67.         for (ChannelArticle article : articles) {       
  68.             entry = new SyndEntryImpl();       
  69.             entry.setTitle(article.getTitle());       
  70.             entry.setLink("每篇文章的链接");       
  71.             entry.setPublishedDate(new Date());       
  72.                
  73.             description = new SyndContentImpl();       
  74.             description.setType("text/html");       
  75.             description.setValue(article.getContent());       
  76.                    
  77.             entry.setDescription(description);      
  78.                
  79.             entries.add(entry);       
  80.         }       
  81.         return entries;      
  82.  }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值