- 浏览: 622155 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
xianzi_2008:
xianzi_2008 写道楼主请教下,我缓存了一个List& ...
Ehcache -
xianzi_2008:
楼主请教下,我缓存了一个List<Bean>对象, ...
Ehcache -
jsdsh:
收藏好.五个字
hibernate之one-to-many详细 -
Tlife:
好!!!!
hibernate------HQL总结 -
yanqingluo:
例子很恰当。
观察者模式
Rome: http://wiki.java.net/bin/view/Javawsxml/Rome
Rome是 java.net 上的一个开源项目,为什么叫Rome呢,按它的介绍上的说法,有个“条条大路通罗马”的意思,有些RSS的意味。Rome可能是 sun 公司从自己某个子项目中抽离出来的,package和类的命名就象j2sdk一样感觉规范。功能上支持RSS的所有版本及 Atom 0.3(Atom是和RSS类似的一种内容聚合的方式)。Rome 本身是提供API和功能实现.
package com.itfly;
import com.sun.syndication.io.impl.DateParser;
/**
* 读取解析一个远程RSS
* RomeReadByRemote.java
*
* @author mahaibo
* @version $Revision$
*
* @hibernate.class lazy="true" table="RomeReadByRemote"
*/
public class RomeReadByRemote {
public static void main(String[] args)
{
try
{
//如果程序位于防火墙后面,就需要在程序中加上一些Proxy设置。
java.util.Properties systemSettings = System.getProperties();
systemSettings.put("http.proxyHost", "wsay.net");
systemSettings.put("http.proxyPort", "8080");
System.setProperties(systemSettings);
//有时候,可能会遇到“java.io.IOException: Server returned HTTP response code: 403 for URL”的错误信息。通常是因为服务器的安全设置不接受Java程序作为客户端访问,解决方案是设置客户端的User Agent, 示例代码如下:
String urlStr = "http://blogsearch.google.com/blogsearch_feeds?hl=en&q=feedsky&ie=utf-8&num=10&output=rss";
java.net.URLConnection feedUrl = new java.net.URL(urlStr).openConnection();
feedUrl.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
com.sun.syndication.io.SyndFeedInput input = new com.sun.syndication.io.SyndFeedInput();
com.sun.syndication.feed.synd.SyndFeed feed = input.build(new com.sun.syndication.io.XmlReader(feedUrl));
String feedType = feed.getFeedType();//获取原feed属于哪种格式
System.out.println(feedType);
java.util.List list = feed.getEntries();
for (int i=0; i< list.size(); i++) {
com.sun.syndication.feed.synd.SyndEntry entry = (com.sun.syndication.feed.synd.SyndEntry)list.get(i);
String entryTitle = entry.getLink();
System.out.println(entry.getPublishedDate());
System.out.println(entry.getTitle());
System.out.println(entry.getLink());
System.out.println(entry.getAuthor());
System.out.println(entry.getAuthor());
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
package com.itfly;
import java.io.File;
import java.io.PrintWriter;
import com.sun.syndication.io.SyndFeedOutput;
/**
* 读取解析一个远程RSS,并写入到一个本地文件里
* RomeReadByRemote.java
*
* @author mahaibo
* @version $Revision$
*
* @hibernate.class lazy="true" table="RomeReadByRemote"
*/
public class RomeReadAndWriteByRemote {
private static final String feedType = "rss_1.0";
public static void main(String[] args)
{
try
{
java.util.Properties systemSettings = System.getProperties();
systemSettings.put("http.proxyHost", "mywebcache.com");
systemSettings.put("http.proxyPort", "8080");
System.setProperties(systemSettings);
String urlStr = "http://blogsearch.google.com/blogsearch_feeds?hl=en&q=feedsky&ie=utf-8&num=10&output=rss";
java.net.URLConnection feedUrl = new java.net.URL(urlStr).openConnection();
feedUrl.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
//读取一个远程的Rss文件
com.sun.syndication.io.SyndFeedInput input = new com.sun.syndication.io.SyndFeedInput();
com.sun.syndication.feed.synd.SyndFeed feed = input.build(new com.sun.syndication.io.XmlReader(feedUrl));
//把读取到的结果写入到到本地一个文件里
feed.setFeedType(feedType);//设置转换的类型后再保存到另一个文件
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed,new File("c:/pic/1.xml"));
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
package com.itfly;
import java.io.File;
import java.io.PrintWriter;
import com.sun.syndication.io.SyndFeedOutput;
/**
* 读取解析一个本地的RSS
* RomeReadByRemote.java
*
* @author mahaibo
* @version $Revision$
*
* @hibernate.class lazy="true" table="RomeReadByRemote"
*/
public class RomeReadByLocal {
private static final String feedType = "rss_2.0";
public static void main(String[] args)
{
try
{
//读取解析本地的一个Rss文件
com.sun.syndication.io.SyndFeedInput input = new com.sun.syndication.io.SyndFeedInput();
com.sun.syndication.feed.synd.SyndFeed feed = input.build(new File("c:/pic/1.xml"));
System.out.println(feed.getFeedType());//获得原 rss是哪种格式
//在控制台输出
SyndFeedOutput output = new SyndFeedOutput();
feed.setFeedType(feedType);//以哪种格式输出feed,如果这里不设置以哪种格式输出,会以它原来的格式输出
output.output(feed, new PrintWriter(System.out));
// java.util.List list = feed.getEntries();
// for (int i=0; i< list.size(); i++) {
// com.sun.syndication.feed.synd.SyndEntry entry = (com.sun.syndication.feed.synd.SyndEntry)list.get(i);
//
//
// String entryTitle = entry.getLink();
// System.out.println(entry.getPublishedDate());
// System.out.println(entry.getTitle());
// System.out.println(entry.getLink());
// System.out.println(entry.getAuthor());
// System.out.println(entry.getAuthor());
//
// }
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
package com.itfly;
import java.io.File;
import java.io.PrintWriter;
import com.sun.syndication.io.SyndFeedOutput;
/**
* 读取解析一个本地的RSS,并写入另一个文件里
* RomeReadByRemote.java
*
* @author mahaibo
* @version $Revision$
*
* @hibernate.class lazy="true" table="RomeReadByRemote"
*/
public class RomeReadAndWriteByLocal {
public static void main(String[] args)
{
try
{
//读取解析本地的一个Rss文件
com.sun.syndication.io.SyndFeedInput input = new com.sun.syndication.io.SyndFeedInput();
com.sun.syndication.feed.synd.SyndFeed feed = input.build(new File("c:/pic/1.xml"));
//写入到另一个文件里
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed, new File("c:/pic/2.xml"));
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
package com.itfly;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import com.sun.syndication.feed.synd.SyndFeed;
import com.sun.syndication.feed.synd.SyndFeedImpl;
import com.sun.syndication.io.SyndFeedOutput;
/**
* 烧制(合并)作2个远程的RSS
* RomeBurnByRemote.java
*
* @author mahaibo
* @version $Revision$
*
* @hibernate.class lazy="true" table="RomeBurnByRemote"
*/
public class RomeBurnByRemote {
private static final String feedType = "rss_1.0";
public static void main(String[] args)
{
try
{
SyndFeed feed = new SyndFeedImpl();
feed.setFeedType(feedType);
feed.setTitle("wsay Feed");
feed.setDescription("wsay Feed");
feed.setAuthor("wsay");
feed.setLink("http://www.wsay.net");
java.util.Properties systemSettings = System.getProperties();
systemSettings.put("http.proxyHost", "wsay.net");
systemSettings.put("http.proxyPort", "8080");
System.setProperties(systemSettings);
String urlStr = "http://blogsearch.google.com/blogsearch_feeds?hl=en&q=feedsky&ie=utf-8&num=10&output=rss";
java.net.URLConnection feedUrl = new java.net.URL(urlStr).openConnection();
feedUrl.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
String urlStr1 = "http://blog.csdn.net/mhbjava/category/173484.aspx/rss";
java.net.URLConnection feedUrl1 = new java.net.URL(urlStr1).openConnection();
feedUrl1.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
//读取某个运程的rss
com.sun.syndication.io.SyndFeedInput input = new com.sun.syndication.io.SyndFeedInput();
com.sun.syndication.feed.synd.SyndFeed feedone = input.build(new com.sun.syndication.io.XmlReader(feedUrl));
com.sun.syndication.feed.synd.SyndFeed feedtwo = input.build(new com.sun.syndication.io.XmlReader(feedUrl1));
List list = new ArrayList();
list.addAll(feedone.getEntries());
list.addAll(feedtwo.getEntries());
feed.setEntries(list);//烧制2个rss
//在控制台输出
SyndFeedOutput output = new SyndFeedOutput();
output.output(feed,new PrintWriter(System.out));
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
- src.rar (4.9 KB)
- 下载次数: 165
发表评论
-
struts备忘(转)
2008-03-31 15:14 1038=======<html:messages>=== ... -
Ehcache
2008-01-04 17:33 6970参考:http://macrochen.blogdriver. ... -
maven2介绍
2008-01-03 10:35 7586Maven2主要配置文件:pom.xml和settings.x ... -
struts2知识点备忘
2007-12-23 19:06 2243struts2标签写的form表单 1. 只有FieldErr ... -
dwr 错误:org.directwebremoting.util.CommonsLogging
2007-12-07 15:47 3441dwr遇到这种错误: org.directwebremotin ... -
XFire简单使用
2007-11-29 15:09 37201 . XFire可以认为是webservice的一个实现。 ... -
JDBM存储
2007-09-24 14:09 28391.JDBM可以把它理解成一 ... -
转:maven2
2007-09-11 10:00 15891.安装 下载Maven.目前的版本是2.0.4 ... -
eclipse plugin:EasyExplorer
2007-09-04 17:19 13968EasyExplorer 是一个类似于 Windows Ex ... -
openjms
2007-09-02 12:16 11592种模式 : 1. PTP (Point-to-Point) ... -
struts跳转问题
2007-08-07 15:46 3715web.xml <!-- Struts Action ... -
jndi,连接池,nameserver区别
2007-04-18 10:16 1449连接池就不用说了 jndi是种规范 nameserver是按照 ... -
XML-RPC 中文传递
2007-04-13 15:29 1927XML-RPC 中文传递 /** * 支持中文,Bas ... -
prototype
2007-03-14 16:52 1211new Ajax.Updater("infotop ... -
删除目录及子目录下隐藏的某个文件
2007-03-06 15:03 1424删除目录及子目录下隐藏的某个文件 del /S /A:H Th ... -
ehcache的一个bug
2007-01-23 16:55 3657java.lang.IllegalAccessError: t ... -
Rome使用简单说明二(部分关键源码分析)
2007-01-22 17:48 5104Parser部分(解析) com.sun.syndicatio ... -
hibernate 缓存
2007-01-19 17:24 1778查询缓存: 1。key(根据hql生成的sql,再加上参数,分 ... -
dwr遇到的问题解决
2007-01-10 19:05 1698问题:.Max depth exceeded when der ... -
XMLC在eclipse中的使用
2007-01-06 17:49 2218XMLC 插件 关于外部插件 ...
相关推荐
《Rome使用简单说明二(部分关键源码分析)》 在Java开发中,Rome是一个用于处理RSS和Atom feeds的开源库。它提供了一系列的API,使得开发者能够轻松地读取、创建和更新这些标准格式的feed。本文将重点探讨Rome库中的...
接下来,我们将通过一个简单的实例来展示如何使用Rome解析RSS feed。首先,我们需要导入必要的库: ```java import com.rometools.rome.feed.synd.SyndFeed; import com.rometools.rome.io.SyndFeedInput; import ...
罗马(Rome)是一个开源的Java库,专门用于处理RSS和Atom feeds,便于开发者轻松集成RSS功能到他们的应用中。 Rome 1.0RC2是该项目的一个早期版本,主要提供了RSS和Atom feed的解析、创建和更新功能。在这个版本中...
- **RSS阅读器**:使用ROME和rsslib4j,开发者可以创建自己的RSS阅读器应用,让用户能够订阅和管理多个RSS源,获取实时更新。 - **内容聚合**:可以利用这些库将不同来源的RSS feed聚合在一起,形成一个统一的信息流...
总的来说,Rome是一个强大且易于使用的Java库,它简化了RSS和Atom feed的处理流程,为开发者提供了强大的工具,使他们能够更专注于应用程序的其他核心功能。对于需要处理新闻聚合或内容发布系统的项目,Rome无疑是一...
标题中的“jdom和rome1.0包”指的是两个Java库,一个是JDOM,另一个是ROME。这两个库在处理XML数据和RSS feed时起到关键作用。 JDOM(Java Document Object Model)是一个用纯Java实现的DOM(Document Object Model...
总的来说,"rome-1.0.jar.zip" 提供了一个方便的方式来获取和使用罗马库,而"rome-license.txt"则确保了合法和合规的使用。对开发者来说,深入理解这个库的功能和许可条款将有助于更有效地集成和利用这个工具。
Rome-1.0.jar是该项目的一个特定版本,它可能包含了一些早期的功能和修复,而rome.jar可能是一个更通用的引用,指代Rome项目的任意版本。 源码分析是理解这些库如何工作的关键。通过查看源码,我们可以深入理解其...
【时间插件ROME】是一款优秀的前端开发工具,主要用于在网页应用中实现自定义日期和时间选择功能。它具有无依赖性的特点,意味着开发者无需额外引入其他库或框架,即可直接使用该插件,大大简化了项目的构建过程。...
在IT行业中,RSS(Really Simple Syndication)是一种广泛使用的数据格式,它允许用户订阅和获取网站更新,如新闻、博客文章或播客等。而"jdom+rome JAR包"是两个Java库,用于帮助开发者更方便地处理XML文档,并...
- 创建一个简单的Java程序,导入Rome库,利用`SyndFeedInput`解析指定的RSS或Atom feed。 - 遍历`SyndFeed`的`entries`集合,输出每个条目的标题和链接,从而实现新闻的抓取和展示。 7. **最佳实践** - 在实际...
例如,可以先使用JDOM创建一个`Document`对象,然后添加`Element`来表示RSS feed的基本信息,如频道(channel)、标题、描述等。接着,为每个内容项创建`Element`,并添加到频道元素下。最后,使用ROME将这个JDOM...
在Java开发中,处理XML文档是一项常见的任务,而JDOM(Java Document Object Model)和ROME(Really Simple Syndication)库则是为此目的而设计的强大工具。这两个库的结合,使得在Java环境中解析和创建XML,特别是...
在开发Web应用时,RSS订阅是一项常见的功能,它能让用户轻松获取网站的更新内容。Rome是一个Java库,专门用于处理RSS和Atom feeds,帮助开发者实现RSS订阅功能。然而,在处理中文字符时,Rome可能会遇到编码问题,...
实践中,可以尝试创建一个简单的RSS阅读器,或者将Rome库集成到现有的内容管理系统中,以增强其RSS/Atom功能。 9. **最佳实践** 在使用Rome时,应注意正确处理异常,避免内存泄漏,并遵循RSS和Atom的规范,以确保...
Rome 项目介绍及其在 RSS 解析中的应用 Rome 是一个基于 Java 的开源项目,提供了一组 Atom/RSS 工具类,以使得用 Java 可以更方便和快捷地操作大部分 Syndication 格式数据。Rome 需要 JDK1.4 以上版本和 JDom.jar...
ROME是一个开源的Java库,它为处理RSS和Atom feeds提供了一种简单的方法。它包含了RSS和Atom feed的解析、生成以及模型化等功能,使得开发者能够方便地与这些格式进行交互。 其次,JDOM是Java文档对象模型,它是...