- 浏览: 590149 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
smilezhouwei:
请问CruiseControl在加载jar包时,由于jar包过 ...
修改CruiseControl的端口 -
zengxuefei:
不起作用啊,有bug
Flex+Java多文件上传 -
lzeus:
模仿的tomcat源码吧?
java事件处理机制(自定义事件)【转】 -
yangbobestone:
...
FreeMarker整合Struts2 -
fddjxllren:
那是因为你没配置事务,楼主的那个主要是针对事务的写法
Spring2.5+JUnit4单元测试
用Rome解析Rss的例子
需要的jar包
rome.jar 可到http://wiki.java.net/bin/view/Javawsxml/Rome下载最新的
jdom.jar
java代码
package com.test; import java.net.URL; import java.util.List; import com.sun.syndication.feed.synd.SyndCategory; import com.sun.syndication.feed.synd.SyndContent; import com.sun.syndication.feed.synd.SyndEnclosure; import com.sun.syndication.feed.synd.SyndEntry; import com.sun.syndication.feed.synd.SyndFeed; import com.sun.syndication.io.SyndFeedInput; import com.sun.syndication.io.XmlReader; public class TestParse { public static void main(String[] args) { TestParse test = new TestParse(); test.parseRss(); } public void parseRss() { // String rss = "http://news.baidu.com/n?cmd=1&class=civilnews&tn=rss&sub=0]http://news.baidu.com/n?cmd=1&class=civilnews&tn=rss&sub=0"; String rss = "http://rss.sina.com.cn/ent/hot_roll.xml"; try { URL url = new URL(rss); // 读取Rss源 XmlReader reader = new XmlReader(url); System.out.println("Rss源的编码格式为:" + reader.getEncoding()); SyndFeedInput input = new SyndFeedInput(); // 得到SyndFeed对象,即得到Rss源里的所有信息 SyndFeed feed = input.build(reader); //System.out.println(feed); // 得到Rss新闻中子项列表 List entries = feed.getEntries(); // 循环得到每个子项信息 for (int i = 0; i < entries.size(); i++) { SyndEntry entry = (SyndEntry) entries.get(i); // 标题、连接地址、标题简介、时间是一个Rss源项最基本的组成部分 System.out.println("标题:" + entry.getTitle()); System.out.println("连接地址:" + entry.getLink()); SyndContent description = entry.getDescription(); System.out.println("标题简介:" + description.getValue()); System.out.println("发布时间:" + entry.getPublishedDate()); // 以下是Rss源可先的几个部分 System.out.println("标题的作者:" + entry.getAuthor()); // 此标题所属的范畴 List categoryList = entry.getCategories(); if (categoryList != null) { for (int m = 0; m < categoryList.size(); m++) { SyndCategory category = (SyndCategory) categoryList.get(m); System.out.println("此标题所属的范畴:" + category.getName()); } } // 得到流媒体播放文件的信息列表 List enclosureList = entry.getEnclosures(); if (enclosureList != null) { for (int n = 0; n < enclosureList.size(); n++) { SyndEnclosure enclosure = (SyndEnclosure) enclosureList.get(n); System.out.println("流媒体播放文件:" + entry.getEnclosures()); } } System.out.println(); } } catch (Exception e) { e.printStackTrace(); } } }
参考资料
Rome简介
Rome是为RSS聚合而开发的开源包,它可以支持0.91、0.92、0.93、0.94、1.0、2.0,可以说rss的版本基本上都支持了。
Rss简介
RSS是站点用来和其他站点之间共享内容的一种简易方式(也叫聚合内容),通常被用于新闻和其他按顺序排列的网站,例如Blog。
RSS就是一种用来分发和汇集网页内容的XML格式!
RSS =Really Simple Syndication(真正简单的聚合 )或Rich Site Summary(丰富站点摘要 )
Rss目前已经被广泛的应用 也是xml应用中的最成功的一项。
RSS 没有统一标准,目前被使用的版本主要有0.91、1.0、2.0
RSS的理解
拿一个新闻网站来说,如果这个网站使用了RSS技术,也即表示这个网站按照RSS标准将其新闻罗列出来,生成一个RSS文件通常称为(RSS Feed,其实也就是一个*.xml文件)。其他网站或个人就订阅该新闻网站的新闻 ,其实也就是读取了新闻网站提供的RSS文件,既然说是”订阅“即表示这个过程是动态的,即主要体现在新闻网站上的内容更新了,浏览者也同时得到了更新后的内容。当然这要借助工具。
目的及作用
网站内容资源共享
可以自由选择想要浏览的新闻
不用一个网站一个网站,一个网页一个网页去逛了。只要这将你需要的内容订阅在一个RSS阅读器中,这些内容就会自动出现你的阅读器里,你也不必为了一个急切想知道的消息而不断的刷新网页,因为一旦有了更新,RSS阅读器就会自己通知你!
RSS的联合(Syndication)
发布一个RSS文件(一般称为RSS Feed)后,这个RSS Feed中包含的信息就能直接被其他站点调用,而且由于这些数据都是标准的XML格式,所以也能在其他的终端和服务中使用,如PDA、手机、邮件列表等。而且一个网站联盟(比如专门讨论旅游的网站系列)也能通过互相调用彼此的RSS Feed自动的显示网站联盟中其他站点上的最新信息,这就叫着RSS的联合。
这种联合就导致一个站点的内容更新越及时、RSS Feed被调用的越多,该站点的知名度就会越高,从而形成一种良性循环
RSS的聚合(Aggregation)
所谓RSS聚合,就是通过软件工具的方法从网络上搜集各种RSS Feed并在一个界面中提供给读者进行阅读。这些软件可以是在线的WEB工具 也可以是客户端软件
Rss浏览
RSS是一个纯xml文件,将RSS里的新闻友好的显示出来就要借助于RSS阅读器
RSS阅读器其实就是一个客户端软件或内嵌程序,将各个新闻站点提供的xml文件(RSS Feed)中内容读取出来,将所有新闻分门别类的显示在软件中。分类管理也就是所谓的频道管理。
Rss文件格式
下面是一个Rss文件(*.xml),里面的注释是自己加的,<!-- 和-->之间为注释。
<?xml version="1.0" encoding="utf-8" ?>
<!-- 声明当前文件为xml文档【必】
-->
<rss version="2.0">
<!-- 声明当前文件内容为rss格式文件,属性version(必须)指定当前rss版本【必】
-->
<channel>
<!-- 固有节点【必】
-->
<title>新闻中心-国内焦点新闻</title>
<!-- 对网站和当前RSS 文件的简短描述【必】
-->
<image>
<!-- 为当前RSS添加图片
-->
<title>新闻中心-国内焦点</title>
<!-- 图片标题对图片的简单描述
-->
<link>http://news.sina.com.cn/china</link>
<!-- 网站链接地址
-->
<url>http://image2.sina.com.cn/dy/gn/in10.jpg</url>
<!-- 图片的链接地址
-->
</image>
<description>国内焦点新闻列表</description>
-<!-- 对当前RSS文件的描述【必】
-->
<link>http://news.sina.com.cn/china/index.shtml</link>
<!-- 网站主页链接【必】
-->
<language>zh-cn</language>
<!-- 当前RSS使用的语言
-->
<generator>WWW.SINA.COM.CN</generator>
<!-- 当RSS文件为自动创建时多存在此节点(RSS文件由什么创建)
-->
<ttl>5</ttl>
<!-- (ttl = time to live) 在刷新前当前RSS在cache中可以保存多长时间(分钟)
-->
<copyright>Copyright 1996 - 2005 SINA Inc. All Rights Reserved</copyright>
<!-- 声明版权
-->
<pubDate>Wed, 26 Apr 2006 01:45:05 GMT</pubDate>
<!-- 当前RSS最后发布的时间
-->
<category />
<!-- 声明当前RSS内容的种类
-->
<item>
<!-- 一条信息
-->
<title>最高检:严惩公务员利用审批等权力索贿受贿</title>
<!-- 新闻标题【必】
-->
<link>http://news.sina.com.cn/c/l/2006-04-26/08029720281.shtml</link>
<!-- 新闻链接【必】
-->
<author>WWW.SINA.COM.CN</author>
<!-- 新闻作者
-->
<guid>http://news.sina.com.cn/c/l/2006-04-26/08029720281.shtml</guid>
<!-- guid>GUID=Globally Unique Identifier 为当前新闻指定一个全球唯一标示
-->
<category>国内焦点新闻</category>
<!-- 新闻种类
-->
<pubDate>Wed, 26 Apr 2006 00:02:53 GMT</pubDate>
<!-- 新闻最后发布时间
-->
<comments />
<!-- 新闻注释
-->
<description>新华网沈阳4月25日电 (记者 杨维汉、范春生) 最高人民检察院常务副检察长张耕说,对于国家公务员在商业活动中利用职权谋取非法利益、索贿受贿的案件,必须发现一起,坚决查处一起。特别是对国家公务员利用行政审批权、行政执法权和司法权执法犯法、贪赃枉法、索贿受贿,构成犯....</description>
<!-- 新闻的简单描述【必】
-->
</item>
</channel>
</rss>
第一行 声明当前文件是xml文档
第二行声明当前文件内容为rss格式文件,属性version(必须)指定当前rss版本为2.0
<channel>节点为Rss文档的固有节点,必须,无属性。
<item> 节点中即纪录了当前RSS Feed中要显示的内容。一个RSS文件中通常包含多个<item>节点
<channel>节点
必须节点
<title> 对网站和当前RSS 文件的简短描述
<link> 网站主页链接
<description> 对当前RSS文件的描述
可选节点
<image> 为当前RSS添加图片
<language> 当前RSS使用的语言
<generator>当RSS文件为自动创建时多存在此节点(RSS文件由什么创建)
<ttl>(ttl = time to live) 在刷新前当前RSS在cache中可以保存多长时间(分钟)
<copyright>声明版权
<pubDate> 当前RSS最后发布的时间
<category>声明当前RSS内容的种类
等等
<item>节点
<item> 纪录一条信息(新闻),只包含这条新闻的简单信息,一个RSS文件中包含几条新闻就会有几个<item>
必须节点
<title> 新闻标题
<link> 新闻链接
<description> 新闻的简单描述
可选节点
<author> 当前新闻的作者
<guid>GUID=Globally Unique Identifier 为当前新闻指定一个全球唯一标示
<category>当前新闻的类别
<pubDate>当前新闻的最后发布时间
<comments>当前新闻的注释
等等
- jdom-1.0.jar (149.7 KB)
- 下载次数: 132
- rome-0.9.jar (203.1 KB)
- 下载次数: 156
评论
发表评论
-
Java枚举使用
2010-06-07 10:57 1181Java枚举使用 public class MyT ... -
在ssh、telnet断开之后继续执行程序
2010-05-28 13:54 6375在ssh、telnet断开之后继 ... -
Resin Web容器下服务初始化了两次
2010-05-26 10:01 3638Resin Web容器下服务初始化了两次: 问题描 ... -
java事件处理机制(自定义事件)【转】
2010-04-01 09:52 10230java事件处理机制(自 ... -
配置多个事务
2010-03-22 12:02 982有关配置多个数据源及事务管理时要注意在执行操作时要指明事务 ... -
Java缩放生成新的图片
2009-10-14 11:31 1314缩放生成新的图片,需要附件中的gif4j.jar支持 ... -
Java 注解(Annotation)
2009-08-14 12:04 1291注解(Annotation) 为我们在代码中天界信息提供了一 ... -
Java类中数据以JSON格式输出结果
2009-06-17 10:16 14521/** * 以格式输出结果 * ... -
JAVA字符串转日期或日期转字符串
2009-06-10 16:31 1319文章中,用的API是SimpleDateFormat,它 ... -
Java中读写Properties文件的工具类
2009-05-26 14:05 12272package com.common.util; imp ... -
通过Java反射调用方法
2009-05-25 13:59 1845通过Java反射调用方法 这是个测试用的例子,通过反射 ... -
Java中对数据库的事务控制
2009-04-03 09:40 1325try{ conn.setAutoCommit(false ... -
Cookie管理
2009-04-03 09:39 1099package com.yimei.util; import ... -
Servlet中输出为XML工具类
2009-03-11 15:54 1226在工具类中定义如下方法: protected void r ... -
Java中取sql语句中的列
2009-02-16 17:21 2372package com.test; import java.s ... -
Java反射
2009-02-13 03:27 1095package com.yimei.test; import ... -
HttpClient入门
2009-02-11 12:52 2001developerWorks 中国 > ... -
Java中的类反射
2009-01-15 11:36 1440一、反射的概念 : 反射的概念是由Smith在1982年首次提 ... -
Java序列化
2009-01-14 09:43 1167package test; import java.io.F ... -
POI导出Excel文件
2009-01-06 11:39 4449HSSFWorkbook wb = new H ...
相关推荐
接下来,我们将通过一个简单的实例来展示如何使用Rome解析RSS feed。首先,我们需要导入必要的库: ```java import com.rometools.rome.feed.synd.SyndFeed; import com.rometools.rome.io.SyndFeedInput; import ...
在使用 Rome 解析 RSS 时,可能会遇到一些问题,例如 sina 的 RSS 不符合 RFC822 规范,导致 pubDate 里不包含时区信息。解决方法是下载 Rome 的源码,修改 com.sun.syndication.io.impl.DateParser 类的 ...
【罗马(Rome)RSS解析库1.0RC2详解】 在互联网信息爆炸的时代,RSS(Really Simple Syndication)成为了订阅和聚合新闻、博客、播客等动态内容的重要工具。RSS通过XML格式提供数据,使得用户可以无需访问各个网站...
首先,你可以通过以下步骤使用ROME解析RSS URL: 1. 引入ROME库:在项目中添加ROME的依赖,这通常通过Maven或Gradle配置完成。 2. 创建`RSSHandler`:定义一个处理RSS内容的类,继承自`RSSHandlerBase`,重写其中的...
本文将深入探讨如何解决使用Rome处理RSS订阅时遇到的中文出错问题。 首先,我们需要理解问题的根源。在处理XML文件(如RSS feed)时,编码问题通常与字符集设置有关。RSS规范通常要求XML文档声明一个字符编码,如...
3. **使用Rome解析RSS新闻** - 使用`SyndFeedInput`可以从URL或XML字符串中读取feed。 - 解析后的feed可以通过`SyndFeed`对象进行访问,获取新闻标题、描述、链接、作者等信息。 - 对于百度RSS新闻的不同栏目,...
- **解析RSS馈送**:使用Rome库的`SyndFeed`类将XML内容转换为易于处理的对象模型。 - **处理RSS条目**:遍历`SyndFeed`的条目列表,提取每条信息,如标题、描述、发布日期和链接。 - **JDOM辅助操作**:如果需要对...
本篇文章将深入探讨RSS和Atom聚合规范以及如何使用工具如Rome和rssutils来解析XML文件。 首先,让我们了解RSS和Atom的基本概念。RSS是一种基于XML的格式,用于发布经常更新的内容,如新闻标题、摘要和链接。RSS文件...
Rome解析RSS必备jar
通过使用ROME,开发者可以轻松地解析、创建和更新RSS和Atom feeds,从而快速构建RSS相关的应用程序。 1. **API接口**:ROME1.0提供了一套清晰、易于使用的API,允许开发者创建和操作RSS和Atom feeds。例如,你可以...
【描述】中的“rss读写功能”指的是开发应用程序时实现的两个关键操作:解析RSS源(读取)和创建或更新RSS源(写入)。这个项目可能提供了一个简单的解决方案,让用户能够方便地处理RSS数据,而无需深入了解RSS的...
他们可以了解如何使用Rome库来解析RSS feed,提取文章标题、内容、发布日期等信息,以及如何构建新的RSS feed发布到网络上。 在实际项目中,理解RSS feed的结构和Rome库的API至关重要。例如,`...
Rome库提供了丰富的API,允许开发者轻松地创建、解析和操作RSS和Atom feed。 1. **RSS与Atom简介** RSS是一种XML格式,用于发布经常更新的内容,如博客文章、新闻标题等。RSS feed通常包含摘要、链接和发布日期等...
通过使用ROME,开发者可以轻松地从网站抓取和解析RSS feed,或者创建自己的RSS feed并发布到网络。 在描述中提到的“rome开发rss”,意味着这个压缩包可能包含了使用ROME库进行RSS开发的相关示例或代码。JDOM的提及...
JDOM和ROME的结合使用,可以实现从XML文档中提取RSS Feed,然后通过ROME解析这些Feed,提取出文章标题、描述、链接等信息,甚至可以进一步处理这些信息,比如存入数据库或进行数据分析。这样的组合,为开发者提供了...
标题中的“rome-1.0 jdom 第一个RSS发布实例”揭示了本次讨论的主要内容,涉及到两个关键的Java库——Rome和JDOM,以及如何使用它们来创建和发布RSS(Really Simple Syndication) feed。RSS是一种XML格式,用于发布...
- **解析RSS feeds**:从RSS源下载XML数据,然后使用库解析成Java对象,以便进一步处理和展示。 - **订阅和更新**:定期检查RSS源是否有新内容,一旦发现新项,可以向用户发送通知或更新到数据库。 - **转换RSS格式*...
同时,它也提供了从URL中抓取和解析RSS/Atom feed的能力,以及将已有的RSS/Atom对象转换成XML字符串的功能。 **RSS** RSS,即Really Simple Syndication,是一种用于发布和订阅新闻、博客文章和其他在线内容的XML...
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