使用rome解析rss xml

本文介绍了一个RSS作者库项目,并通过使用rome开源库解析RSS XML文件。提供了详细的Java代码示例,展示了如何从指定的RSS源抓取新闻条目,包括文章标题、链接、作者等信息。

最近做了一个rss作者库,顺便也看看了使用rome开源解析rss xml的文章,并使用一下demo代码做一个简单的验证,

官网提供的包地址如下rome-1.0.jar

官网地址rome

demo代码如下



import java.net.URL;
import java.net.URLConnection;
import java.util.Date;

import com.sun.syndication.feed.synd.SyndContent;
import com.sun.syndication.feed.synd.SyndContentImpl;
import com.sun.syndication.feed.synd.SyndEntry;
import com.sun.syndication.feed.synd.SyndEntryImpl;
import com.sun.syndication.feed.synd.SyndFeed;
import com.sun.syndication.io.SyndFeedInput;
import com.sun.syndication.io.XmlReader;


public class RssFeed{

public boolean parseRssXml(){
    boolean result = true;
    try {
        URL feedUrl = new URL("http://rss.sina.com.cn/news/marquee/ddt.xml");
        URLConnection urlConn = feedUrl.openConnection();
        //feedUrl.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
        SyndFeedInput input = new SyndFeedInput();
        XmlReader reader = new XmlReader(urlConn);  
        SyndFeed feed = input.build(reader);
        int entriesSize = feed.getEntries().size();
        System.out.println("News:" + entriesSize + " FeedType:"+ feed.getFeedType() + " Title:" + feed.getTitle());
        SyndEntry entry;
        SyndContent description;
        for (int i = 0; i < entriesSize; i++) {
            entry = new SyndEntryImpl();
            entry = (SyndEntry) (feed.getEntries()).get(i);
            description = new SyndContentImpl();
            description = entry.getDescription();
            
            String title = entry.getTitle();//文章题目
            String link = entry.getLink();//文章链接
            String author = entry.getAuthor();//作者
            String desContent = description.getValue();//文章描述
            Date publishDate = entry.getPublishedDate();//文章发布日期
            System.out.print((i + 1) + ". " + title.trim()+ " 作者:" + author);
            System.out.println(publishDate != null ? " 日期:"+ publishDate : "");
            System.out.println(desContent.trim());
            System.out.println(link);
        }

    } catch (Exception ex) {
        ex.printStackTrace();
        result = false;
    }
    
    return result;
}
    /**
    * @param args
    */
    public static void main(String[] args) {
        RssFeed rssFeed = new RssFeed();
        rssFeed.parseRssXml();
    }
    
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值