分享
 
 
 

RSS 开发教程

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

RSS(Really Simple Syndication,真正简单的连锁)是一种 Web 内容连锁格式。RSS 成为通过 Web 连锁新闻内容的标准格式。作为最近与 Sun Microsystems 签署合同的一部分,我负责开发任何懂得 RSS、JavaServer Pages 和 HTML 的人便可以使用的“JSP 标签库”。taglib 主要面向用 RSS 收集新闻内容的 Web 站点的非技术性编辑人员。我的目标是开发在 Web 页中将简化使用 RSS 内容(0.91、0.92 和 2.0 版本)的 JSP 标签库。

RSS Utilities Package 是该项目的结果。它包括一套自定义 JSP 标签,这些标签弥补了 RSS Utilities Tag library 和灵活的 RSS 语法分析器。该文档说明了如何使用该语法分析器和 RSS Utilities Package 提供的库。在这里单击便可以下载第一个版本。该 zip 文件包含一个 jar 文件 rssutils.jar(该文件包含使用该工具所需的类)和一个 tld 文件(该文件定义从 RSS 文档中提取信息的 JSP 自定义标签)。

安装 taglib

尽管使用标签库很容易,但在安装时要求您了解 Web 服务器的工作原理和如何去配置它。第一步是下载并解压包。一旦 zip 文件已经解压了,在 Web 应用程序的 /WEB-INF/lib 目录中放置一份 rssutils.jar 和 rsstaglib.tld 的副本。将下面的 taglib 定义添加至 Web 应用程序的 /WEB-INF/web.xml 文件:

<taglib>

<taglib-uri>/WEB-INF/rssutils.tld</taglib-uri>

<taglib-location>/WEB-INF/rssutils.tld</taglib-location>

</taglib>

使用 taglib

一旦 taglib 已经安装在 Web 应用程序中,按照以下步骤便可以在 JSP 页面中使用 taglib。首先,将下面一行添加至 JSP 页面的顶部:

<%@ taglib uri="/WEB-INF/rssutils.tld" prefix="rss" %>

其次,使用 feed 标签将 RSS feed 添加至 JSP 页面,如下例所示:

<rss:feed url="http://servlet.java.sun.com/syndication/rss_java_highlights-10.xml" feedId="javaSunCom"/>

"feed" 标签的 url 属性必须包含到 RSS 文档的 URL。"feed" 标签的 feedId 属性是任意的,可以设置为任何值。然而,我们建议该属性在标识 RSS feed 时要直观。如果应用程序在防火墙后面,可以使用名为 proxyAddress 和 proxyPort 的 "feed" 标签代理属性来设置代理属性。如果不知道代理服务器地址代理端口,请与网络管理员联系。下面是一个例子:

<rss:feed url="http://servlet.java.sun.com/syndication/rss_java_highlights-10.xml" feedId="example1" proxyAddress="129.149.246.4" proxyPort="8080"/>

一旦将一个或多个 RSS feed 添加到页面,您应能使用剩余的一套标签来从 feed 中提取几乎任何信息。下面是一个例子,说明如何提取在上面添加的 RSS feed 频道的标题:

<rss:channelTitle feedId="javaSunCom"/>

Taglib 示例

例 1 (RSS 0.91):

<rss:feed

url="http://servlet.java.sun.com/syndication/rss_java_highlights-XYZCompany-10.xml"

feedId="example1"/>

<b>Image: </b><rss:channelImage feedId="example1" asLink="true"/><br>

<b>Title: </b><rss:channelTitle feedId="example1"/><br>

<b>Link: </b><rss:channelLink feedId="example1" asLink="true"/><br>

<b>Description: </b><rss:channelDescription feedId="example1"/><br>

<ul>

<li><rss:itemTitle feedId="example1" index="0"/><br>

<rss:itemDescription feedId="example1" index="0"/><br><br>

<li><rss:itemTitle feedId="example1" index="1"/><br>

<rss:itemDescription feedId="example1" index="1"/><br>

</ul>

例 2 (RSS 0.92):

<rss:feed

url="http://static.userland.com/gems/backend/gratefulDead.xml" feedId="example2"/>

<b>Image: </b><rss:channelImage feedId="example2"/><br>

<b>Title: </b><rss:channelTitle feedId="example2"/><br>

<b>Link: </b><rss:channelLink feedId="example2" asLink="true"/><br>

<b>Description: </b><rss:channelDescription feedId="example2"/><br>

<ul>

<rss:forEachItem feedId="example2">

<li><rss:itemDescription feedId="example2"/><br><br>

</rss:forEachItem>

</ul>

例 3 (RSS 2.0):

<rss:feed

url="http://static.userland.com/gems/backend/rssTwoExample2.xml"

feedId="example3"/>

<b>Image: </b><rss:channelImage feedId="example3"/><br>

<b>Title: </b><rss:channelTitle feedId="example3"/><br>

<b>Link: </b><rss:channelLink feedId="example3" asLink="true"/><br>

<b>Description: </b><rss:channelDescription feedId="example3"/><br>

<b>Copyright: </b><rss:channelCopyright feedId="example3"/><br>

<b>Docs: </b><rss:channelDocs feedId="example3"/><br>

<b>Generator: </b><rss:channelGenerator feedId="example3"/><br>

<b>Language: </b><rss:channelLanguage feedId="example3"/><br>

<b>Last Build Date: </b><rss:channelLastBuildDate

X-Virus: 1

feedId="example3"/><br>

<b>Managing Editor: </b><rss:channelManagingEditor

feedId="example3"/><br>

<b>Pub Date: </b><rss:channelPubDate feedId="example3"/><br>

X-Virus: 1

<b>Skip Days: </b><rss:channelSkipDays feedId="example3"/><br>

<b>Skip Hours: </b><rss:channelSkipHours feedId="example3"/><br>

<b>TTL: </b><rss:channelTTL feedId="example3"/><br>

<ul>

<rss:forEachItem feedId="example3" startIndex="2" endIndex="4">

<li><rss:itemDescription feedId="example3"/><br><br>

</rss:forEachItem>

</ul>

如何使用 RssParser?

从某种程度上看,语法分析器是该项目的副产品。尽管语法分析器是用标签库来开发的,但是它完全是自包含的,它可以在 Java 应用程序中使用。然而,要做到这一点,显然您至少需要了解如何编写基本的 Java 代码。(如果您了解如何用 Java 语言编写 Hello World,就没什么问题了。)

首先下载并解压包。一旦将 rssutils.jar 添加至您的类路径,就请使用 RssParserFactory 创建 RssParser 接口的实例:

RssParser parser = RssParserFactory.createDefault();

Rss rss = parser.parse(new

URL("http://mydomain.com/document.rss"));

语法分析器生成的 RSS 对象是位于提供的 URL 中的 RSS 文档的 Java 对象表示。使用 RSS 对象提供的方法以获得其它 RSS 对象的句柄,如 Channels 和 Items。RssParser 也能够分析 File 对象和 InputStream 对象。

结束语

RSS 提供了一种简单的方法来添加和维护您的 Web 站点上来自所有 Web 的新闻及其它内容。即使 RSS 是简单的 XML 格式,在 Web 上的其他任何地方从 XML 文档中分析并提取数据都可能有点棘手——或者至少单调乏味——如果您不得不一遍又一遍地去做的话。RSS Utilities Package 利用 Custom Tag 和 XML Parsing 技术使 "Real Simple Syndication" 格式真正做到文如其名。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有