今天要為新網站寫一個動態生成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 %> |
新聞熱點
疑難解答