2006/06/28 | [转]给自己的网站添加RSS功能
类别(网页知识) | 评论(0) | 阅读(185) | 发表于 17:20
全文来自:http://www.colorbird.net/user1/friday/archives/2006/24.html

RSS是基于XML(可扩展标志语言)的一种形式,并且所有的RSS文件都要遵守W3C站点发布的XML1.0规范。一般来说,RSS文档的最顶层是一个<rss>元素作为根元素,<rss>元素有一个强制属性version,用于指定当前RSS文档的版本,目前常用的RSS版本是2.0。<rss>元素下的子元素是唯一的一个<channel>元素,它包含了关于该网站或栏目的信息和内容,在下必备的语句有三个:

<title>:网站或栏目的名称,一般与网站或栏目的页面title一致;

<link>:网站或栏目的URL;

<description>:对网站或栏目的简要描述。

还可以使用一些如<language>(语言)、<copyright>(版权声明)等可选语句来丰富<channel >内容,具体的更新内容提要就要依靠来体现了。一般一个更新就是一个<item>,<item>下至少要存在一个<title>或<description>,其他语句可以根据需要进行选择。下面以ASP+ACCESS为例来具体介绍如何在网站中添加RSS功能。

既然RSS是一种XML格式的文档,那么我们就应当可以对后台数据库中的数据按照条件进行筛选、组织,然后通过ASP生成XML格式的数据流,最后发送到客户端进行浏览。

问题的关键在于怎么生成XML格式的数据流。其实Asp也已经有自己的解决办法,就是在写数据前对response对象的ContentType属性进行定义。如果response.ContentType的取值为"text/xml",就会向浏览者发送XML格式的数据流。

在IE浏览器中调用RSS源的方法和普通的链接没有什么区别,格式是:

<a type="application/rss+xml" href="Rss.asp">RSS</a>

以下程序段是创建某网站上的一个栏目的RSS的源代码,文件名为Rss.asp。

其中,变量sXmlClear用于声明产生的文档是一段XML格式的文档,该声明是可选的,以保持与旧版本XML的向后兼容性。sRssHead定义Rss的基本元素。

<!-Filename:Rss.asp:-->

<%Optionexplicit%>

<!--#i ncludefile="conn.asp"-->

<%
Dim sSQL, rs,sCrLf, sXmlClear, sRssHead, sRssEnd

sCrLf=chr(13)&chr(10) '回车+换行

sXmlClear="<?xml version='1.0'encoding='gb2312'?>"& sCrLf

sRssHead="<rss version='2.0'>"& sCrLf

sRssHead=sRssHead&"<channel>"& sCrLf

sRssHead=sRssHead&"<title>Teacher's Blog</title>"& sCrLf

sRssHead=sRssHead&"<description>Teacher's Blog</description>"& sCrLf

sRssHead=sRssHead&"<link></link>"& sCrLf

sRssHead= RssHead&"<language>zh-cn</language>"& sCrLf

sRssHead=sRssHead&"<docs>Teacher's Blog</docs>"& sCrLf

sRssEnd="</channel></rss>"

Response.CharSet="gb2312" '数据集

Response.ContentType="text/xml" '数据流格式定义

'输出:

Response.write sXmlClear

Response.write sRssHead

sSQL="select top15* from news order by sortid desc"

Set rs=Server.CreateObject("ADODB.Recordset")

rs.Open sSQL,s_Conn,1,1

if not (rs.eof and rs.bof) then

do while not rs.eof

response.write"<item>"& sCrLf

response.write"<title>"&rs("f_topic")&"</title>"& sCrLf
response.write"<link>"&"/show_new.asp?autoid="&rs("f_i_autoid")&"</link>"& sCrLf

response.write"<author>"&rs("f_author")&"</author>"& sCrLf

response.write"<pubDate>"&rs("f_datetime")&"</pubDate>"& sCrLf

response.write"</item>"&sCrLf&sCrLf

rs.movenext

loop

end if

rs.close

set rs=nothing

Response.write sRssEnd%>

IE中的调用格式是:<a href= "/Rss.asp"> RSS</a>。如果用一些客户端软件订阅该RSS,订阅的Url就是/Rss.asp。
0

评论Comments

日志分类
首页[55]
生活点滴[37]
关注动漫[7]
博客收藏[2]
网页知识[9]