飞云小侠的个人博客

欢迎你到这里来

« 使用FreeMarker-IDE,辅助提示WebWork的Tag语法 | Main | Eclipse 的正则表达式测试插件 »

使用ROME读取RSS
2006/05/11,18:26

非常简单 Cool


ROME是sun旗下的一个项目,主页是 https://rome.dev.java.net

ROME FETCHER是它的一个子项目,主要用来读取HTTP的Feed.

用起来非常简单

  1. package com.jscud.test;
  2.  
  3. import java.net.URL;
  4. import java.util.List;
  5.  
  6. import com.sun.syndication.feed.synd.SyndEntry;
  7. import com.sun.syndication.feed.synd.SyndFeed;
  8. import com.sun.syndication.fetcher.FeedFetcher;
  9. import com.sun.syndication.fetcher.impl.FeedFetcherCache;
  10. import com.sun.syndication.fetcher.impl.HashMapFeedInfoCache;
  11. import com.sun.syndication.fetcher.impl.HttpURLFeedFetcher;
  12.  
  13. public class RSSReader
  14. {
  15.  
  16. public RSSReader()
  17. {
  18. }
  19.  
  20. public static void main(String[] args) throws Exception
  21. {
  22. FeedFetcherCache feedInfoCache = HashMapFeedInfoCache.getInstance();
  23. FeedFetcher feedFetcher = new HttpURLFeedFetcher(feedInfoCache);
  24. SyndFeed feed = feedFetcher.retrieveFeed(new URL("http://feeds.feedburner.com/jscud"));
  25. List entryList = feed.getEntries();
  26. for(int i=0;i<entryList.size();i++)
  27. {
  28. SyndEntry entry = (SyndEntry) entryList.get(i);
  29. System.out.println(entry.getPublishedDate());
  30. System.out.println(entry.getTitle());
  31. System.out.println(entry.getLink());
  32. }
  33.  
  34. }
  35. }

上面是使用了缓存的,也就是说更新才读取,如果每次都读取,则修改对应行为:

FeedFetcher feedFetcher = new HttpURLFeedFetcher();

 

最新回复

我的也出现了乱码,可以说说你是怎么弄的吗?

Comment Icon Posted by: Jason at 2006/11/24, 16:39

我试了,打在控制台是没有问题的,但是在生成xml文件的时候就出现问题。读取新浪新闻,百度新闻,csdn blog和blogjava blog的时候都出现这种情况。

读取rss设置时编码怎么设置

Comment Icon Posted by: border at 2006/07/11, 18:07

...我没遇到乱码. 可能你读取的rss设置的编码不对. 我写的只是读取,没有生成相关的内容. 你可以试试读取别人的rss

Comment Icon Posted by: scud at 2006/07/11, 17:35

我在用的时候,中文有部分乱码问题,不知道你是怎么解决的,
如果可以的话,说说你的方法

Comment Icon Posted by: border at 2006/07/11, 17:12
 
Support by JavaScud