RSS跟一般的XML文件一樣,必須使用XSL文件來定義其中的標籤。
RSS的架構太簡單,自己寫也沒什麼意思,教學中這支程式是網路上流傳的rss閱讀程式,大家直接抓回去用就好了。
首先,我們必須先寫一份XSL文件來定義RSS中的標籤。
一份RSS文件的基本架構如下:
<rss version="2.0">
<channel>
<title>文件抬頭</title>
<link>文件網址</link>
<description>文件簡介</description>
<language>zh-tw(文件語言,zh-tw是台灣的傳統中文)</language>
<lastBuildDate>Sat, 26 Nov 2005 11:40:19 GMT(建立時間)</lastBuildDate>
<item>
<title>項目標題</title>
<link>項目連結</link>
<pubDate>項目更新日期</pubDate>
</item>
<item>
<title>項目標題</title>
<link>項目連結</link>
<pubDate>項目更新日期</pubDate>
</item>
...
</channel>
</rss>
rss標籤代表的是文件主體;channel則是文件內容;channel下的title、link、description則分別是這份rss希望顯示的抬頭、官方網站連結和簡介;item標籤rss文件中的單一項目:每個項目也都可以定義抬頭、項目項目的位址和更新日期等。
我們可以建立一份對應rss架構的xsl文件,xsl文件內容如下:
<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="big5" omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="*">
<table border="1" width="600" align="center" style="border-collapse:collapse" cellpadding="5">
<tr>
<td valign="top" class="title" bgcolor="#336699">
<a>
<xsl:attribute name="href">
<xsl:value-of select="*[local-name()='channel']/*[local-name()='link']"/>
</xsl:attribute>
<xsl:attribute name="target">
<xsl:text>top</xsl:text>
</xsl:attribute>
<font color="#ffffff">
<xsl:value-of select="*[local-name()='channel']/*[local-name()='title']" disable-output-escaping="yes"/>
</font>
</a>
<font color="#ffffff">
<xsl:text disable-output-escaping="yes"> </xsl:text>
<xsl:value-of select="*[local-name()='channel']/*[local-name()='lastBuildDate']"/>
</font>
</td>
</tr>
<tr>
<td valign="top" bgcolor="#eeeeee" class="headlines" >
<xsl:for-each select="//*[local-name()='item']">
<p>
<a>
<xsl:attribute name="href">
<xsl:value-of select="*[local-name()='link']"/>
</xsl:attribute>
<xsl:attribute name="target">
<xsl:text>top</xsl:text>
</xsl:attribute>
<xsl:value-of select="*[local-name()='title']" disable-output-escaping="yes"/>
</a>
<xsl:text disable-output-escaping="yes"> </xsl:text>
<xsl:value-of select="*[local-name()='description']" disable-output-escaping="yes"/>
</p>
</xsl:for-each>
</td>
</tr>
</table>
</xsl:template>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
這份xsl文件將xml標籤中含有的屬性和數值整理成為一個表格,若看不懂你可參考一下酷必網其他的XML教學。
接著當然就是要建立一個能夠存取rss文件的函式,這部份可以直接用微軟XML Parser來達成:
<%
Sub getXML(sourceFile)
dim styleFile
dim source, style
styleFile = Server.MapPath("news.xsl") '你的XSL文件檔名
set source = Server.CreateObject("Msxml2.DomDocument")
source.async = false
source.setProperty "ServerHTTPRequest", true
source.load CStr(sourceFile)
set style = Server.CreateObject("Msxml2.DomDocument")
style.async = false
style.load styleFile
source.transformNodeToObject style, Response
set source = nothing
set style = nothing
End Sub
%>
這個函式很容易使用,只要將RSS文件的網址作為函式參數就行了:
<% getXML("http://tw.news.yahoo.com/rss/politics") %>
上例是奇摩的政治新聞版的rss文件。
通常網路上的站台若有提供rss,都會有個橘色的rss圖案連結到與該頁有關的rss文件。就拿奇摩新聞來說好了,每一頁的rss圖案連結到的就是含有該頁最新新聞列表的rss文件。
很容易吧!
联系客服