rome制作rss服务
2011年04月01日
最近用rome做了一个rss服务,大致的内容如下,有不妥的地方,请指正:
//RssChannelDO类
public class RssChannelDO {
private String title;
private String description;
private String link;
private String uri;[size=x-large;][/size][size=large][/size]
@SuppressWarnings("unchecked")
private List items;
private String language;
private String copyright;
private Date pubDate;
private String feedType;
private String encoding;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getLink() {
return link;
}
public void setLink(String link) {
this.link = link;
}
public String getUri() {
return uri;
}
public void setUri(String uri) {
this.uri = uri;
}
@SuppressWarnings("unchecked")
public List getItems() {
return items;
}
@SuppressWarnings("unchecked")
public void setItems(List items) {
this.items = items;
}
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
this.language = language;
}
public String getCopyright() {
return copyright;
}
public void setCopyright(String copyright) {
this.copyright = copyright;
}
public Date getPubDate() {
return pubDate;
}
public void setPubDate(Date pubDate) {
this.pubDate = pubDate;
}
public String getFeedType() {
return feedType;
}
public void setFeedType(String feedType) {
this.feedType = feedType;
}
public String getEncoding() {
return encoding;
}
public void setEncoding(String encoding) {
this.encoding = encoding;
}
}
////////////////////////////////////////////////// /////////
//RssChannelItemDO类
public class RssChannelItemDO {
private String title;// Rss文件中Item的标题
private String link;// Rss文件中Item对应的连接
private String description;// Item的描述
private Date pubDate;// Item发布的时间
private String author;// Item作者
private String category;// Item所属的频道范畴
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title = title;
}
public String getLink()
{
return link;
}
public void setLink(String link)
{
this.link = link;
}
public String getDescription()
{
return description;
}
public void setDescription(String description)
{
this.description = description;
//articleDO.getArticlePages().get(0).get
}
public Date getPubDate()
{
return pubDate;
}
public void setPubDate(Date pubDate)
{
this.pubDate = pubDate;
}
public String getAuthor()
{
return author;
}
public void setAuthor(String author)
{
this.author = author;
}
public String getCategory()
{
return category;
}
public void setCategory(String category)
{
this.category = category;
}
}
////////////////////////////////////////////////// /////////////
public class RssChannelEItemDO extends RssChannelItemDO{
private String enclosure;// 流媒体文件
public String getEnclosure()
{
return enclosure;
}
public void setEnclosure(String enclosure)
{
this.enclosure = enclosure;
}
}
////////////////////////////////////////////////// /////////////
public interface RssServiceBase {
/**
* rss服务发布接口
*
* @param rssSiteId
* 网站服务ID
* @param channel
* 频道名
* @param itemList
* 频道中所包含的项
* @param rssType
* rss协议类型
* @param encoding
* 编码类型
* @param layOut
* 排版类型 默认为0,用于以后扩展
*/
public boolean rssBuild(String rssSiteId,RssChannelDO channel,
ArrayList itemList,String rssType,String encoding,int layOut);
}
////////////////////////////////////////////////// ////////////////
public class RssFactory implements RssServiceBase{
private SyndFeed feed; //创建RSS
@SuppressWarnings("unchecked")
private List entries; //生成item集合
private SyndEntry entry; //生成item
@SuppressWarnings("unused")
private RssChannelDO rssChannel; //频道域
@SuppressWarnings("unchecked")
private static Map rssMap=new HashMap(); //保存所对应的rss服务内容,当map中有时,无需再创建,直接读取
private static RssFactory rssFactory;
@SuppressWarnings("unchecked")
private RssFactory() {
feed = new SyndFeedImpl();
feed.setFeedType("rss_2.0");
entries = new ArrayList();
}
/**
* 创建一个频道
*
* @param title
* 频道标题
* @param link
* 频道对应的连接
* @param description
* 频道描述
* @param language
* 频道所用语言
* @param pubDate
* 频道发布时期
* @param copyright
* 版权所有
* @throws Exception
*/
public void buildChannel(String title, String link, String description,
String language, Date pubDate, String copyright)
throws RuntimeException {
feed.setTitle(title);
feed.setLink(link);
feed.setDescription(description);
feed.setLanguage(language);
feed.setPublishedDate(pubDate);
feed.setCopyright(copyright);
}
/**
* 添加频道的子内容
*
* @param item
* {@link ChannelItem}
* @throws Exception
*/
@SuppressWarnings("unchecked")
public void buildItems(RssChannelItemDO item) throws RuntimeException {
entry = new SyndEntryImpl();
// 设置新闻标题
entry.setTitle(item.getTitle());
// 设置新闻的连接地址
entry.setLink(item.getLink());
// 设置新闻简介
SyndContent content = new SyndContentImpl();
content.setType("text/plain");
content.setValue(item.getDescription());
entry.setDescription(content);
// 设置发布时间
entry.setPublishedDate(item.getPubDate());
// 设置频道所属的范围
SyndCategory cate = new SyndCategoryImpl();
cate.setName(item.getCategory());
List cateList = new ArrayList();
cateList.add(cate);
entry.setCategories(cateList);
// 设置作者
entry.setAuthor(item.getAuthor());
// 将新闻项添加至数组中
entries.add(entry);
}
/**
* 添加频道的内容项
*
* @param item
* {@link ChannelEItem}此类继承自ChannelItem类
* @throws Exception
*/
@SuppressWarnings("unchecked")
public void buildItems(RssChannelEItemDO item) throws RuntimeException {
entry = new SyndEntryImpl();
// 设置新闻标题
entry.setTitle(item.getTitle());
// 设置新闻的连接地址
entry.setLink(item.getLink());
// 设置新闻简介
SyndContent content = new SyndContentImpl();
content.setValue(item.getDescription());
entry.setDescription(content);
// 设置发布时间
entry.setPublishedDate(item.getPubDate());
// 设置频道所属的范围
SyndCategory cate = new SyndCategoryImpl();
cate.setName(item.getCategory());
List cateList = new ArrayList();
cateList.add(cate);
entry.setCategories(cateList);
// 设置作者
entry.setAuthor(item.getAuthor());
// 设置流媒体播放文件
SyndEnclosure en = new SyndEnclosureImpl();
en.setUrl(item.getEnclosure());
List enList = new ArrayList();
enList.add(en);
entry.setEnclosures(enList);
// 将新闻项添加至数组中
entries.add(entry);
}
/**
* rss服务发布接口
*
* @param rssSiteId
* 网站服务ID
* @param channel
* 频道名
* @param itemList
* 频道中所包含的项
* @param rssType
* rss协议类型
* @param encoding
* 编码类型
* @param layOut
* 排版类型 默认为0,用于以后扩展
*/
public boolean rssBuild(String rssSiteId,RssChannelDO channel,
ArrayList itemList,String rssType,String encoding,int layOut)
{
buildChannel(channel.getTitle(),channel.getLink(), channel.getDescription(),
channel.getLanguage(),channel.getPubDate(),channel .getCopyright());
String rss=null;
int size=itemList.size();
for(int i=0;i
发表评论
-
在 Android 平台上应用 Berkeley DB 11gR2 SQL(drop-in模式)(转http://www.cnmsdn.com/html/201004/1270362092ID3134.html)
2012-01-20 01:03 996在 Android 平台上应用 Ber ... -
在 C# 中通过 P/Invoke 调用Win32 DLL
2012-01-20 01:03 489在 C# 中通过 P/Invoke 调用Win32 DLL ... -
用IIS发布网站
2012-01-20 01:03 598用IIS发布网站 2010年07月15日 1,安装iis ... -
我的ATL/ADO编程的曲折经历
2012-01-20 01:03 576我的ATL/ADO编程的曲折经 ... -
深入探究 Win32 PE 文件格式
2012-01-20 01:03 673深入探究 Win32 PE 文件格 ... -
中国各地男人之最的分析
2012-01-19 08:52 1220中国各地男人之最的分 ... -
第七十三章 暗杀
2012-01-19 08:52 542第七十三章 暗杀 2011年06月10日 丰含笑又等了 ... -
我的见解
2012-01-19 08:52 501我的见解 2011年08月20日 上等美女只存在两个地方 ... -
“网店模特”成新兴职业 大学生兼职居多
2012-01-19 08:52 602“网店模特”成新兴职 ... -
HTC G2 超级新手教程之最终版
2012-01-17 01:22 530HTC G2 超级新手教程之最 ... -
System32下每个DLL的作用
2012-01-17 01:22 1630System32下每个DLL的作用 ... -
轻松编译google chrome浏览器最新稳定版源代码
2012-01-17 01:22 1023轻松编译google chrome浏览器最新稳定版源代码 2 ... -
从零开始- Android刷机指南<二>
2012-01-17 01:22 614从零开始- Android刷机指 ... -
c# 语音功能入门
2012-01-17 01:22 937c# 语音功能入门 2011年10月09日 ... -
一个简单破解excelvba工程密码方法
2012-01-15 20:04 1320一个简单破解excelvba工程密码方法 2010年02月2 ... -
转 Windows API 函数在VFP中的运用
2012-01-15 20:04 561转 Windows API 函数在VFP中的运用 2010年 ... -
VB关机程序
2012-01-15 20:03 741VB关机程序 2009年12月26日 这是我以前写的一个 ... -
VB窗口图表化
2012-01-15 20:03 597VB窗口图表化 2011年04月20日 '本模块为实现托 ... -
VB获取QQ2011安装路径
2012-01-15 20:03 736VB获取QQ2011安装路径 2011年05月23日 V ... -
jspSmartUpload下载
2012-01-11 12:13 563jspSmartUpload下载 2011年04月01日 ...
相关推荐
java使用Rome解析Rss的实例
利用Rome解析Rss,Rome 是 java.net 上的一个开源项目Rome需要JDK1.4以上版本和JDom.jar
在做的过程中遇到中文字符出错的问题,网上也有很多人提出来,但是好能解决的不多,如果你也遇到这个问题,请详细看本文档!
rome-1.0RC2 source,jar and doc
RSS的一个工具类基于JAVA,可以解析URL生成XML也可以通过传参生成一个RSS,注释详细,用到ROME和JDOM技术,欢迎大家借鉴学习.
RSS开源框架ROME1.0下载集合 1.rome-1.0-javadoc 2.rome-1.0-sources
NULL 博文链接:https://chenhao-yssy.iteye.com/blog/1074264
Rome解析RSS必备jar
Rome是一个用于RSS和Atom提要的Java框架。框架由几个模块组成:
rome开发rss jdom rom1.0
rome包rss使用 支持各种rss版本 XXXXX XXXXX XXXXX XXXX
Rome是为RSS聚合而开发的一个框架,让你可以快速的开发基于java的RSS阅读,发布器,支持 RSS 0.91 Netscape RSS 0.91 Userland RSS 0.92 RSS 0.93 RSS 0.94 RSS 1.0 RSS 2.0 Atom 0.3 Atom 1.0 等标准。
Rome是为RSS聚合而开发的一个框架,让你可以快速的开发基于java的RSS阅读
rome-1.0.jar jdom.jar 并提供第一个RSS发布实例 (可以使用IO流写到本地xml文件;包括所需jar包,及一个成功的实例)
罗马是用于RSS和Atom提要的Java框架。 该框架包含几个模块: :warning: 由于缺乏积极的维护者,该项目的维护和开发目前受到限制。 考虑成为一个积极的维护者。 项目结构 模块 描述 rome 用于生成和解析RSS和Atom...
rss读写功能,直接用eclipse导入即可,有需要的请猛击下载
java相关RSS 部分资料已经生成代码和jar包
rome开发获取rss 配合jdom简单方便。十分的好用,欢迎下载。
rome-1.0.jar rome.jar 源码
java 开发rss订阅 所需的 rsslibj-1_0RC2.jar EXML.jar rome-1.0.jar包