百度空间 | 百度首页 
 
查看文章
 
如何用asp创建网站的RSS
2008-08-27 18:35

RSS 是一种“轻量级、多用途、可扩展的元数据描述及联合推广格式”,也可以理解为一种规范。它本身是一种 XML 格式,用于为内容整合客户端提供选择性的、汇总过的 Web 内容。

始通过创建 RSS feed 向浏览者提供内容整合服务,提供新闻、站点内容的更新等等。浏览者可以通过一些客户端软件方便地得到这些组织、汇总了的信息。

    那么,怎么在我们自己的网站上创建 RSS feed 呢?下面我以 Asp+Access 为例介绍一下。既然 RSS 是一种 XML 格式的文档,那么我们就应当可以对后台数据库中的数据按照条件进行筛选、组织,然后通过 ASP 生成 XML 格式的数据流,最后发送到客户端进行浏览。
数据的选取、汇集是 Asp 的拿手好戏,关键在于怎么生成 XML 格式的数据流。其实 Asp 也已经有自己的解决办法,就是在写数据前对 response 对象的 ContentType 属性进行定义。如果 response.ContentType 的取值为 "text/xml",就会向浏览者发送 XML 格式的数据流。
    在 IE 浏览器中调用 RSS 源的方法和普通的链接没有什么区别,现在以爱搜网(www.icoioo.com)的项目专栏asp代码如下

<!-Filename:RssFeed_news.asp:-->
<% Option explicit %>
<!-- #include file="./conn.inc" -->
<%
   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> Icoioo </title>" & sCrLf
   sRssHead = sRssHead & "<description> item </description>" & sCrLf
   sRssHead = sRssHead & "<link>http://www.icoioo.com/</link>" & sCrLf
   sRssHead = sRssHead & "<language>zh-cn</language>" & sCrLf
   sRssHead = sRssHead & "<docs>Icoioo.COM News Center</docs>" & sCrLf
   sRssHead = sRssHead & "<generator>Rss Generator By WWW.ICOIOO.COM</generator>" & sCrLf
   sRssEnd = "</channel></rss>"
   Response.CharSet="gb2312"   '数据集
   Response.ContentType="text/xml"   '数据流格式定义
   '输出:
   Response.write sXmlClear
   sSQL="select top 15 * from sdsp order by id desc"
   Set rs = Server.CreateObject("ADODB.Recordset")
   rs.Open sSQL, Conn, 1, 1
   if not (rs.eof and rs.bof) then
     do while not rs.eof
   sRssHead = sRssHead & "<item>" & sCrLf
   sRssHead = sRssHead & "<title> " & rs("name") & " </title>" & sCrLf
   sRssHead = sRssHead & "<link> " & "http://www.icoioo.com/item/detailed.asp?id=" & rs("id") & " </link>" & sCrLf
   sRssHead = sRssHead & "<author> " & rs("organization") & " </author>" & sCrLf
   sRssHead = sRssHead & "<pubDate> " & rs("time") & " </pubDate>" & sCrLf
   sRssHead = sRssHead & "</item>" & sCrLf & sCrLf
       rs.movenext
     loop
   end if
   rs.close
   set rs=nothing
   Response.write sRssHead
   Response.write sRssEnd
%>

如果需要轉換成xml,只需要在后面加上

   body=sXmlClear&sRssHead&sRssEnd
writexml "item.xml",body
function writexml(filename,bodytext)
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set fout = fso.CreateTextFile(Server.MapPath(filename),true)
fout.WriteLine bodytext
fout.close
end function

就可以了

演示 http://www.icoioo.com/xmlitem.asp http://www.icoioo.com/item.xml


类别:it电脑 | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu