⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 -

📁 java相关RSS 部分资料已经生成代码和jar包
💻
📖 第 1 页 / 共 5 页
字号:
                              2:RSS文件由一个 <channel> 
                              元素及其子元素组成。除了频道内容本身之外,<channel> 
                              <BR>&nbsp;还以项的形式包含表示频道元数据的元素 —— 比如 
                              &lt;title&gt;、&lt;link&gt; 和 
                              &lt;description&gt;。<BR>&nbsp;项通常是频道的主要部分,包含经常变化的内容。<BR>&nbsp;&nbsp;&nbsp; 
                              3:频道(channel)用&lt;channel&gt;表示<BR>&nbsp;频道一般有三个元素,提供关于频道本身的信息:<BR>&nbsp;&lt;title&gt;:频道或提要的名称。 
                              <BR>&nbsp;&lt;link&gt;:与该频道关联的 Web 站点或者站点区域的 URL。 
                              <BR>&nbsp;&lt;description&gt;:简要介绍该频道是做什么的。 
                              <BR>&nbsp;许多频道子元素都是可选的。常用的 &lt;image&gt; 
                              元素包含三个必需的子元素:<BR>&nbsp;&lt;url&gt;:表示该频道的 GIF、JPEG 
                              或 PNG 图像的 URL。 <BR>&nbsp;&lt;title&gt;:图象的描述。当频道以 
                              HTML 呈现时,用作 HTML &lt;image&gt; 标签的 ALT 属性。 
                              <BR>&nbsp;&lt;link&gt;:站点的 URL。如果频道以 HTML 
                              呈现,该图像作为到这个站点的链接。 <BR>&nbsp;&lt;image&gt; 
                              还有三个可选的子元素:<BR>&nbsp;&lt;width&gt;:数字,表示图象的像素宽度,最大值是 
                              188,默认值为 88。 
                              <BR>&nbsp;&lt;height&gt;:数字,表示图象的像素高度。最大值是 
                              400,默认值为 31。 
                              <BR>&nbsp;&lt;description&gt;:包含文本,在呈现时可以作为围绕着该图像形成的链接元素的 
                              title 属性。 
                              <BR>&nbsp;此外还可以使用许多其他可选的频道元素。多数都是不言自明的:<BR>&nbsp;&lt;language&gt;:en-us 
                              <BR>&nbsp;&lt;copyright&gt;:Copyright 2003, James 
                              Lewin <BR>&nbsp;&lt;managingEditor&gt;:<A 
                              href="mailto:dan@spam_me.com">dan@spam_me.com</A> 
                              (Dan Deletekey) <BR>&nbsp;&lt;webMaster&gt;:<A 
                              href="mailto:dan@spam_me.com">dan@spam_me.com</A> 
                              (Dan Deletekey) <BR>&nbsp;&lt;pubDate&gt;:Sat, 15 
                              Nov 2003 0:00:01 GMT 
                              <BR>&nbsp;&lt;lastBuildDate&gt;:Sat, 15 Nov 2003 
                              0:00:01 GMT <BR>&nbsp;&lt;category&gt;:ebusiness 
                              <BR>&nbsp;&lt;generator&gt;:Your CMS 2.0 
                              <BR>&nbsp;&lt;docs&gt;:<A 
                              href="http://blogs.law.harvard.edu/tech/rss">http://blogs.law.harvard.edu/tech/rss</A> 
                              <BR>&nbsp;&lt;cloud&gt;:允许进程注册为“cloud”,频道更新时通知它,为 
                              RSS 提要实现了一种轻量级的发布-订阅协议。 <BR>&nbsp;&lt;ttl&gt;:存活时间 
                              是一个数字,表示提要在刷新之前缓冲的分钟数。 
                              <BR>&nbsp;&lt;rating&gt;:关于该频道的 PICS 评价。 
                              <BR>&nbsp;&lt;textInput&gt;:定义可与频道一起显示的输入框。 
                              <BR>&nbsp;&lt;skipHours&gt;:告诉聚集器哪些小时的更新可以忽略。 
                              <BR>&nbsp;&lt;skipDays&gt;:告诉聚集器那一天的更新可以忽略。 
                              <BR>&nbsp;&nbsp;&nbsp; 
                              4:摘要(feed)用&lt;item&gt;表示,&lt;item&gt;的格式如下:<BR>&nbsp;每个摘要通常包含三个元素:<BR>&nbsp;&lt;title&gt;:这是项的名称,在标准应用中被转换成 
                              HTML 中的标题。 <BR>&nbsp;&lt;link&gt;:这是该项的 URL。title 
                              通常作为一个链接,指向包含在 &lt;link&gt; 元素中的 URL。 
                              <BR>&nbsp;&lt;description&gt;:通常作为 link 中所指向的 URL 
                              的摘要或者补充。 <BR>&nbsp;所有的元素都是可选的,但是一个项至少要么 包含一个 
                              &lt;title&gt;,要么包含一个 
                              &lt;description&gt;。<BR>&nbsp;项还有其他一些可选的元素:<BR>&nbsp;&lt;author&gt;:作者的 
                              e-mail 地址。 <BR>&nbsp;&lt;category&gt;:支持有组织的记录。 
                              <BR>&nbsp;&lt;comments&gt;:关于项的注释页的 URL。 
                              <BR>&nbsp;&lt;enclosure&gt;:支持和该项有关的媒体对象。 
                              <BR>&nbsp;&lt;guid&gt;:唯一与该项联系在一起的永久性链接。 
                              <BR>&nbsp;&lt;pubDate&gt;:该项是什么时候发布的。 
                              <BR>&nbsp;&lt;source&gt;:该项来自哪个 RSS 
                              频道,当<BR>四:主流java rss 
                              lib及其评测:<BR>&nbsp;主要有一下几种:<BR>&nbsp;&nbsp;&nbsp; 
                              1:Rome: <A 
                              href="http://wiki.java.net/bin/view/Javawsxml/Rome">http://wiki.java.net/bin/view/Javawsxml/Rome</A><BR>&nbsp;Rome是 
                              java.net 
                              上的一个开源项目,现在的版本是0.5。为什么叫Rome呢,按它的介绍上的说法,有个“条条大路通罗马”的意思,有些RSS的意味。Rome可能是 
                              sun 
                              公司从自己某个子项目中抽离出来的,package和类的命名就象j2sdk一样感觉规范。功能上支持RSS的所有版本及 
                              Atom 0.3(Atom是和RSS类似的一种内容聚合的方式)。Rome 
                              本身是提供API和功能实现.<BR>&nbsp;&nbsp;&nbsp; 2:rssutils: 
                              <A 
                              href="http://gceclub.sun.com.cn/staticcontent/html/2004-04-22/rss.html">http://gceclub.sun.com.cn/staticcontent/html/2004-04-22/rss.html</A><BR>&nbsp;rssutils是一个工具包,sun 
                              的 develope站点上有文章 RSS Utilities: A Tutorial 
                              专门介绍用taglib 
                              显示RSS内容,附带的可以下载这个工具包,但我从网上搜索不到它的出处,自然也无法看到它的源码。但从反编译的代码来看,也是sun公司内部高手所做,设计精巧,代码简练。实现一个handler,用sax的方式解析xml内容,handler内部用反射和javabean的机制构造RSS元素对象并赋值。<BR>&nbsp;&nbsp;&nbsp; 
                              3:rsslib4j: <A 
                              href="http://sourceforge.net/projects/rsslib4j">http://sourceforge.net/projects/rsslib4j</A><BR>&nbsp;rsslib4j 
                              是 sourceforget 上的项目,同样支持所有RSS版本。 
                              <BR>&nbsp;&nbsp;&nbsp; 
                              4:rsslibj:http://enigmastation.com/rsslibj/<BR>&nbsp;&nbsp;&nbsp; 
                              5:总结<BR>&nbsp;Rome: <BR>&nbsp;优 - 
                              1)可扩展性好,有前途。2)功能强大,除了用来解析RSS,还可以聚合和构造RSS。<BR>&nbsp;劣 
                              - 1)兼容性待加强,2)绑定jdom。<BR>&nbsp;rssutils: 
                              <BR>&nbsp;优 - 1)代码设计精妙,值得学习。2)附带 taglib 实现,直接可在 
                              jsp 中应用。<BR>&nbsp;劣 - 1)没有源码。 2)兼容性有待加强。 
                              3)功能较弱,只能用来解析RSS,没有聚合和构造RSS功能。<BR>&nbsp;rsslib4j:<BR>&nbsp;优 
                              - 1)简单有效,体积小。2)兼容性不错。<BR>&nbsp;劣 - 
                              1)有小bug。2)功能较弱,只能用来解析RSS,没有聚合和构造RSS功能。<BR>&nbsp;rsslibj:<BR>&nbsp;优 
                              - 1)简单有效,体积小,才25K。2)能解析和生成RSS(动态和静态)<BR>&nbsp;劣 - 
                              1)有小bug。2)版本很久没有更新了,陈旧.</DIV>
                              <DIV>五:选择ROME作为RSS实现工具<BR>&nbsp;在官网<A 
                              href="http://wiki.java.net/bin/view/Javawsxml/Rome">http://wiki.java.net/bin/view/Javawsxml/Rome</A>下载rome-0.8.jar,<BR>&nbsp;rome用到了jdom1.0,下载地址:http://www.jdom.org<BR>&nbsp;rome支持:rss_0.9 
                              <BR>&nbsp;&nbsp; rss_0.91 <BR>&nbsp;&nbsp; 
                              rss_0.92 <BR>&nbsp;&nbsp; rss_0.93 
                              <BR>&nbsp;&nbsp; rss_0.94 <BR>&nbsp;&nbsp; rss_1.0 
                              <BR>&nbsp;&nbsp; rss_2.0 <BR>&nbsp;&nbsp; atom_0.3 
                              <BR>&nbsp;&nbsp; atom_1.0 
                              <BR>&nbsp;生成RSS类新需要在程序中指定,如:rss_2.0<BR>六:包结构<BR>&nbsp;com.sun.syndication.feed&nbsp;提供RSS 
                              and Atom 
                              beans的父类<BR>&nbsp;com.sun.syndication.feed.atom&nbsp;提供实现Atom 
                              feeds核心元素的beans<BR>&nbsp;com.sun.syndication.feed.module 
                              提供处理聚合modules的beans<BR>&nbsp;com.sun.syndication.feed.rss&nbsp;提供实现Rss 
                              feeds核心元素的beans<BR>&nbsp;com.sun.syndication.feed.synd&nbsp;我们主要用的就是这个包,SyndFeed 
                              and SyndEntryImpl 
                              <BR>&nbsp;com.sun.syndication.io&nbsp;&nbsp;提供对读取和分析feeds的输入和输出<BR>七:实例:</DIV>
                              <DIV>1:读取远端url的rss,然后输出到控制台:<BR>/**<BR>&nbsp;* 
                              关键代码:<BR>&nbsp;* SyndFeedInput input = new 
                              SyndFeedInput();<BR>&nbsp;* SyndFeed feed = 
                              input.build(new 
                              XmlReader(feedUrl));<BR>&nbsp;*/</DIV>
                              <DIV>package com.sun.syndication.samples;</DIV>
                              <DIV>import 
                              com.sun.syndication.feed.synd.SyndFeed;<BR>import 
                              com.sun.syndication.io.SyndFeedInput;<BR>import 
                              com.sun.syndication.io.XmlReader;<BR>import 
                              java.net.URL;</DIV>
                              <DIV>/**<BR>&nbsp;* It Reads and prints any 
                              RSS/Atom feed type.<BR>&nbsp;*/<BR>public class 
                              FeedReader {</DIV>
                              <DIV>&nbsp;&nbsp;&nbsp; public static void 
                              main(String[] args) 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              boolean ok = 
                              false;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              if (args.length==0) 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              try 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              URL feedUrl = new URL("<A 
                              href="http://seu.org.cn/bbs/rss.php">http://seu.org.cn/bbs/rss.php</A>");<BR>&nbsp;&nbsp;//SyndFeedInput:从远程读到xml结构的内容转成SyndFeedImpl实例<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              SyndFeedInput input = new 
                              SyndFeedInput();<BR>&nbsp;&nbsp;//rome按SyndFeed类型生成rss和atom的实例,<BR>&nbsp;&nbsp;//SyndFeed是rss和atom实现类SyndFeedImpl的接口<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              SyndFeed feed = input.build(new 
                              XmlReader(feedUrl));<BR>&nbsp;&nbsp;//打印到控制台<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              System.out.println(feed);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              ok = 
                              true;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              catch (Exception ex) 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              ex.printStackTrace();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              System.out.println("ERROR: 
                              "+ex.getMessage());<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }</DIV>
                              <DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if 
                              (!ok) 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              System.out.println();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              System.out.println("FeedReader reads and prints 
                              any RSS/Atom feed 
                              type.");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              System.out.println("The first parameter must be 
                              the URL of the feed to 
                              read.");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              System.out.println();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              }<BR>&nbsp;&nbsp;&nbsp; 
                              }<BR>}<BR>2:将多个远程RSS在本地聚集成一个RSS<BR>package 
                              com.sun.syndication.samples;</DIV>
                              <DIV>import java.net.URL;<BR>import 
                              java.io.InputStreamReader;<BR>import 
                              java.io.PrintWriter;<BR>import 
                              java.util.List;<BR>import 
                              java.util.ArrayList;</DIV>
                              <DIV>import 
                              com.sun.syndication.feed.synd.SyndFeed;<BR>import 
                              com.sun.syndication.feed.synd.SyndFeedImpl;<BR>import 
                              com.sun.syndication.io.SyndFeedOutput;<BR>import 
                              com.sun.syndication.io.SyndFeedInput;<BR>import 
                              com.sun.syndication.io.XmlReader;</DIV>
                              <DIV>/**<BR>&nbsp;* It aggregates a list of 
                              RSS/Atom feeds (they can be of different 
                              types)<BR>&nbsp;* into a single feed of the 
                              specified type.<BR>&nbsp;* &lt;p&gt;<BR>&nbsp;* 
                              @author Alejandro 
                              Abdelnur<BR>&nbsp;*<BR>&nbsp;*/<BR>public class 
                              FeedAggregator {</DIV>
                              <DIV>&nbsp;&nbsp;&nbsp; public static void 
                              main(String[] args) 
                              {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                              boolean ok = 
                              false;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -