今天要为新网站写一个动态生成rss的叶面,其实我不是很专业,只是“君子善假于物也”,在网上搜罗了一些资料,慢慢的思路清晰了,然后就写了出来
弊端:由于引用的这个别人的函数没有定义fso的编码形式,所以只支持gb2312输出,如果以utf-8输出可以参考这里
大概过程
1.熟悉rss规范以及格式
这个简单如果不好找规范的话,可以打开别人的rss.xml聚合源来看看就知道了
2.了解生成过程
建立一个asp(createrss.asp)--> 处理读取数据(sql/access等)-->写入rss.xml--Success!
3.编制
这里面试用了别人编写的一个创建并写入文件的函数
write2file.asp
以下是代码片段: <% ’ wite2file.asp ’ 写入文件 Sub Write2File(strFile, strContent, blnAppend) ’ strFile 文件名(路径) , strContent 写入的内容, blnAppend 是否追加 On Error Resume Next Set objFSO = Server.CreateObject("Scripting.FileSystemObject") If blnAppend Then Set objWriteText = objFSO.OpenTextFile(strFile,8,True) Else Set objWriteText = objFSO.OpenTextFile(strFile,2,True) End If objWriteText.WriteLine (strContent) Set objWriteText = Nothing Set objFSO = Nothing ’ 容错处理 Select Case Err Case 424 Response.Write "路径未找到或者该目录没有写入权限." Case Else Response.Write Err.Description ’Case Else Response.Write ErrMsg End Select End Sub ’调用 ’Write2File "c:/dd.ini", "dd", True ’Call Write2File ("c:/dd.ini", "dd", True) ’可以创建文件,但是不能创建目录 %> |
以下是代码片段: ’createrss.asp <!--#include file="write2file.asp"--> dim myrss,enter enter=false’用来判断myrss是否获得有效数据 ’定义rss.xml头 myrss="<?xml version=""1.0"" encoding=""gb2312"" standalone=""yes""?><rss version=""2.0"" xmlns:dc=""http://purl.org/dc/elements/1.1/"" xmlns:trackback=""http://madskills.com/public/xml/rss/module/trackback/"" xmlns:wfw=""http://wellformedweb.org/CommentAPI/""><channel><title>webtitle</title><link>sitehost</link><description>webdescription</description><generator>generator</generator><language>zh-CN</language><copyright>9xiao.cn</copyright><pubDate>pubDate</pubDate>" ’读取数据<item><...> ’事先定义好数据库连接conn set rs=server.CreateObject("adodb.recordset") sql="select * from table" rs.open sql, conn, 1, 1 if not rs.eof then enter=true’有内容可以插入rss do while not rs.eof myrss=myrss & "<item><title>" & rs("title") & "</title><author>" & rs("author") & "</author><link>" & rs("link") & "</link><pubDate>" & rs("pubdate") & "</pubDate><guid>" & rs("link") & "</guid><description><![CDATA[" & rs("yourcontent") & "]]></description><category>" & rs("category") & "</category></item>" rs.movenext loop end if rs.close set rs=nothing ’rss结束 ’rs("*****")中的内容请换为自己的字段 ’结束rss.xml myrss=myrss & "</channel></rss>" ’写入rss if enter=true then Write2File server.MapPath("rss.xml"), myrss, false’不要追加,每次更新 end if %> |
新闻热点
疑难解答