RSS 開發教程----java
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" 格式真正做到文如其名。
posted on 2009-03-06 13:08 肥仔 閱讀(1137) 評論(0) 編輯 收藏 引用 所屬分類: Web Rss