风人园

弱水三千,只取一瓢,便能解渴;佛法无边,奉行一法,便能得益。
随笔 - 99, 文章 - 181, 评论 - 56, 引用 - 0
数据加载中……

Rome使用入门

Rome的两种使用方法
所需jar包的下载 here,在这里可以找到与rome相关的所有文件

1、只使用rome
   
package com.ivo.rss;

import java.io.IOException;
import java.net.URL;
import java.util.Iterator;

import com.sun.syndication.feed.synd.SyndEntry;
import com.sun.syndication.feed.synd.SyndFeed;
import com.sun.syndication.io.FeedException;
import com.sun.syndication.io.SyndFeedInput;
import com.sun.syndication.io.XmlReader;
public class Feed {
    public static void main(String[] args) throws Exception {

       
        SyndFeedInput input = new SyndFeedInput();
        //System.out.println(warmedFeed);
        SyndFeed feed = input.build(new XmlReader(new URL("
http://rss.news.yahoo.com/rss/topstories ")));

        // Iterate through feed items, adding a footer each item
        Iterator entryIter = feed.getEntries().iterator();
        while (entryIter.hasNext()) {
            SyndEntry entry = (SyndEntry) entryIter.next();
            System.out.println(entry.getPublishedDate());
            System.out.println(entry.getTitle());
            //System.out.println(entry.getDescription());
            //System.out.println(entry.getAuthor());
            System.out.println(entry.getLink());
           
        }
    }

}

2、使用rome+rome fetcher

package com.ivo.rss;

import java.net.URL;
import java.util.List;

import com.sun.syndication.feed.synd.SyndContent;
import com.sun.syndication.feed.synd.SyndEntry;
import com.sun.syndication.feed.synd.SyndFeed;
import com.sun.syndication.fetcher.FeedFetcher;
import com.sun.syndication.fetcher.impl.FeedFetcherCache;
import com.sun.syndication.fetcher.impl.HashMapFeedInfoCache;
import com.sun.syndication.fetcher.impl.HttpURLFeedFetcher;

public class RssReader {

    public static void main(String[] args) throws Exception {
        FeedFetcherCache feedInfoCache = HashMapFeedInfoCache.getInstance();
        FeedFetcher feedFetcher = new HttpURLFeedFetcher(feedInfoCache);
        SyndFeed feed = feedFetcher.retrieveFeed(new URL(
                "
http://feeds.feedburner.com/jscud "));
        List entryList = feed.getEntries();
        for (int i = 0; i < entryList.size(); i++) {
            SyndEntry entry = (SyndEntry) entryList.get(i);
            System.out.println("Published Date: "+entry.getPublishedDate());
            System.out.println("Title: "+entry.getTitle());
            System.out.println("Link: "+entry.getLink());
            //System.out.println(entry.getDescription());
            SyndContent sc = entry.getDescription();
            System.out.println("Description: "+sc.getValue());
            System.out.println("------------------------------");
        }
    }
}

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

FeedFetcher feedFetcher = new HttpURLFeedFetcher();

posted on 2006-07-07 14:20 风人园 阅读(1317) 评论(3)  编辑  收藏 所属分类: Java

评论

# re: Rome使用入门  回复  更多评论   

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

2006-07-11 18:32 | Border

# re: Rome使用入门  回复  更多评论   

你指哪一部分?
输出的时候吗?
2006-07-17 15:55 | 风人园

# re: Rome使用入门  回复  更多评论   

当你把你读到的feed输出到xml文件的时候,在xml文件会出现乱码,不知道怎么解决,谢谢你的回复,我刚刚才看到。嘿嘿

具体的情况可以看看: http://www.blogjava.net/border/archive/2006/07/12/57848.html
2006-07-21 09:24 | BorderJ

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问