采用Rome操作RSS
作者:曹祺
Blog: http://blogs.sun.com/greysh
Web: http://www.greysh.com
Email: [email protected]
本文链接:
http://developers.sun.com.cn/blog/functionalca/entry/%E9%87%87%E7%94%A8rome%E6%93%8D%E4%BD%9Crss
源代码下载:
http://developers.sun.com.cn/blog/functionalca/resource/Greysh/FCA_Greysh_Rss.zip
难度:入门
ROME: https://rome.dev.java.net/
1.RSS简介
2.Rome简介
3.Helloworld
简介:本文为如何用ROME操作RSS的Helloworld教程
1.RSS简介
RSS(简 易资讯聚合)是一种消息来源格式规范,用以发布经常更新资料的网站,例如部落格文章、新闻、音讯或视讯的网摘。RSS文件(或称做摘要、网络摘要、或频更 新,提供到能道)包含了全文或是节录的文字,再加上发用者所订阅之网摘布资料和授权的元数据。网络摘要专业层面能够者自和阅读网摘的使动地发布他们的资 料,同时也使读者能更够定期更新他们喜欢的网站或是聚合不同网站的网摘。RSS摘要可以借由RSS阅读器、feed reader或是aggregator等网页或以桌面为架构的软件来阅读。标准的XML档式可允许资讯在一次发布后透过不同的程式阅览。使用者借由将网摘 输入RSS阅读器或是用鼠标点取浏览器上指向订阅程序的RSS小图示之URI(非通常称为URL)来订阅网摘。RSS阅读器定期检阅使是否有更新,然后下 载够监看用者接口。
----摘自维基百科
以下是RSS的例子
<? xml version = "1.0" encoding = "ISO-8859-1" ?>
< rss version = "2.0" >
< channel >
< title > W3School Home Page </ title >
< link > http://www.w3school.com.cn </ link >
< description > Free web building tutorials </ description >
< item >
< title > RSS Tutorial </ title >
< link > http://www.w3school.com.cn/rss </ link >
< description > New RSS tutorial on W3School </ description >
</ item >
< item >
< title > XML Tutorial </ title >
< link > http://www.w3school.com.cn/xml </ link >
< description > New XML tutorial on W3School </ description >
</ item >
</ channel >
</ rss >
简单的说, RSS 是网站新闻的 XML 摘要
2.ROME简介
常用的RSS生成框架很多,如RSSLibJ,RSSLIB4J,FLOCK,就个人而言���好用的还是Rome
用ROME去生成一个RSS,只需要指定版本号和路径,解析一个RSS只需要指定URL
3.Helloworld教程
└─ com
└─ greysh
└─ rss
├─ model
│ ChannelItem.java
│
├─ service
│ │ RssReader.java
│ │ RssWriter.java
│ │
│ └─ impl
│ RssReaderImpl.java
│ RssWriterImpl.java
│
└─ test
RssReaderTest.java
RssWriteTest.java
ChannelItem 为制定的实体,包含 RSS 的一些基本属性
private String title ;
private String link ;
private String description ;
private Date pubDate ;
private String author ;
private String category ;
RssReader 和 RssWriter 分别是解析和创建 RSS 的接口
RssRead 只需要设定路径即可
public interface RssReader {
public void init(String url);
public List<?> getEntries() throws MalformedURLException, IllegalArgumentException, FeedException, IOException;
}
然后得到 Feed 的实体列表
RssWriter 只需要制定路径和版本号即可,一般用 RSS 2.0 或者 ATOM
public interface RssWriter {
public void setChannel(String title, String link, String description,
String language, Date pubDate, String copyright);
public void addChannelItem(ChannelItem channelItem);
public void init(String path,String version);
public void build() throws IOException, FeedException;
}
运行时候 先用 init 初始化,然后用 setChannel 设定频道,然后用 addChannelItem 添加子项,最后用 build 生成 rss
详情请运行上传代码的 Test 文件