岁月如歌

追寻先知的足迹……探寻价值投资之路。

« 我的风筝呢?(摄影)GetRows() 抽取10万条数据 »

建立RSS2.0的ASP函数

采用BLOG系统后,慢慢认识到 RSS的好处,很想把自己所有的网站提供rss订阅。终于找到这个参考资料,经过测试,这个方法创建的 RSS,不完全符合 RSS2.0规范,但还是很有参考性。

 

原文地址:

http://bbs.jiaocan.com/dispbbs.asp?boardid=51&id=12718&page=1&star=1


前几天为一家单位修改网站,就赠送RSS生成接口,下面把函数在这里公布一下。
RSS用ASP包装不是很好,如果用.NET就很完美了,我写过这样程序,认为生成比较容易

,如果要读取,并且要兼容几种版本就要下些功夫了。比如天极网用的是连.net都不支

持的“GBK”编码,读取时有些问题,这不是俺的错,谁让它做不标准的格式了。
废话少说,下面就是代码:

inc/rss.asp:

<%
RSS_ChannelTitle = "东海龙宫"
RSS_ChannelLink = "http://www.hellosea.com"
RSS_ChannelDescription = "海洋龙文化"
RSS_ChannelLanguage = "zh-cn"
RSS_ChannelPubDate = "2004-12-20T10:00:00"

ReDim RSS_Item(0, 4)

RSSItemNum = 0

function RedimRssItem( itemNum )
Redim RSS_Item(itemNum - 1, 4)
RSSItemNum = itemNum
end function

function BuildRssFile( strFileName )
Set objXMLdoc = CreateObject("Microsoft.XMLDOM")
objXMLdoc.preserveWhiteSpace = True

' 建立版本号和encoding属性
Set objPI = objXMLdoc.createProcessingInstruction ("xml","version='1.0'

encoding='gb2312'")
objXMLdoc.insertBefore objPI, objXMLdoc.childNodes(0)

Set objXMLroot = objXMLdoc.createNode("element", "rss", "")
objXMLroot.SetAttribute "version", "2.0"
objXMLdoc.AppendChild(objXMLroot)

' 建立channel节点
set objXMLchannel = objXMLdoc.createNode("element", "channel", "")
objXMLroot.AppendChild(objXMLchannel)

'----------------建立channel中的项------------------
set objXMLTitle = objXMLdoc.createNode("element", "title", "")
objXMLTitle.Text = RSS_ChannelTitle
objXMLchannel.AppendChild(objXMLTitle)

set objXMLink = objXMLdoc.createNode("element", "link", "")
objXMLink.Text = RSS_ChannelLink
objXMLchannel.AppendChild(objXMLink)

set objXMLDescription = objXMLdoc.createNode("element", "description", "")
objXMLDescription.Text = RSS_ChannelDescription
objXMLchannel.AppendChild(objXMLDescription)

set objXMLanguage = objXMLdoc.createNode("element", "language", "")
objXMLanguage.Text = RSS_ChannelLanguage
objXMLchannel.AppendChild(objXMLanguage)

set objXMLPubDate = objXMLdoc.createNode("element", "pubDate", "")
objXMLPubDate.Text = RSS_ChannelPubDate
objXMLchannel.AppendChild(objXMLPubDate)

for i = 0 to RSSItemNum - 1
set objXMLItem = objXMLdoc.createNode("element", "item", "")
objXMLchannel.AppendChild(objXMLItem)

set objXMLTitle = objXMLdoc.createNode("element", "title", "")
objXMLTitle.Text = RSS_Item(i, 0)
objXMLItem.AppendChild(objXMLTitle)

set objXMLink = objXMLdoc.createNode("element", "link", "")
objXMLink.Text = RSS_Item(i, 1)
objXMLItem.AppendChild(objXMLink)

set objXMLDescription = objXMLdoc.createNode("element", "description", "")
objXMLDescription.Text = RSS_Item(i, 2)
objXMLItem.AppendChild(objXMLDescription)

set objXMLAuthor = objXMLdoc.createNode("element", "author", "")
objXMLAuthor.Text = RSS_Item(i, 3)
objXMLItem.AppendChild(objXMLAuthor)

set objXMLPubDate = objXMLdoc.createNode("element", "pubDate", "")
objXMLPubDate.Text = RSS_Item(i, 4)
objXMLItem.AppendChild(objXMLPubDate)
next

objXMLDoc.Save Server.MapPath(strFileName)

end function
%>


下面是过程的用法:

<!--#include file="inc/rss.asp"-->

<%
RSS_ChannelTitle = "新闻动态"
RSS_ChannelLink = "http://www.hellosea.com/article/news/index.aspx"
RSS_ChannelDescription = "国际、国内新闻"
RSS_ChannelLanguage = "zh-cn"
RSS_ChannelPubDate = "2004-12-20T15:58:30"

RedimRssItem(2)

RSS_Item(0, 0) = "浙江外逃女贪官杨秀珠贪污案涉案金额超过两亿"
RSS_Item(0, 1) = "http://www.hellosea.com/article/news/view.aspx?

ArticleID=25"
RSS_Item(0, 2) = "温州市纪委七日在温州市政协八届九次常委会上通报了杨秀珠案件

的查处情况。杨秀珠于去年四月份携女儿、女婿及外孙出逃境外,至今未曾归案。"
RSS_Item(0, 3) = "中国新闻网"
RSS_Item(0, 4) = "2004-12-08T01:11:40"

RSS_Item(1, 0) = "讨薪农妇熊德明为民工维权续:相信总理会支持"
RSS_Item(1, 1) = "http://www.hellosea.com/article/news/view.aspx?

ArticleID=20"
RSS_Item(1, 2) = "讨薪农妇熊德明为民工维权续:相信总理会支持"
RSS_Item(1, 3) = "publisher"
RSS_Item(1, 4) = "2004-12-08T01:11:40"

BuildRssFile( "001.xml" )
%>

  • 相关文章:
  • quote 1.岁月如歌
  • 经过测试,这个方法创建的 RSS,不符合新的 RSS2.0规范。要注意。
  • 2007-12-7 9:44:57 回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Spirit Build 80722 Code detection by Codefense

粤ICP备05029832号 Copyright Rights Reserved.