65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 RSS 2.0 发布您的网站内容

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.41/5 (7投票s)

2007年9月4日

CPOL
viewsIcon

76870

使用 ASP.NET/VB.NET/MS SQL Server 2005 使用 RSS 2.0 发布您的网站内容。

引言

这是一种使用 RSS 2.0 发布您网站内容的简单方法。 代码从 MS SQL Server 数据库中提取项目,并使用 XmlTextWriter 对象动态创建 XML。 您可以使用 T-SQL 通过创建日期过滤结果项目,或使用生存时间。

如果您不理解正在创建的 XML,请查看以下链接以获取有关 RSS 2.0 标准的详细信息:http://cyber.law.harvard.edu/rss/rss.html

如果您更喜欢使用 C# 编写代码,CP 成员发布了一个下面的示例,它将创建这些项目。 但是,您仍然需要使用 RSS 2.0 标准创建父 XML 标签。

使用代码

.aspx 页面只需要这两行代码。

<%@ Page Language="VB" AutoEventWireup="false" 
         CodeFile="rssFeed.aspx.vb" Inherits="rssFeed" %>
<%@ OutputCache Duration="1" VaryByParam="none" %>

这是代码隐藏文件

Imports System
Imports System.Configuration
Imports System.Data
Imports System.Data.SqlClient
Imports System.Text
Imports System.Web
Imports System.Xml

Partial Class rssFeed
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, _
              ByVal e As System.EventArgs) Handles Me.Load

        Response.Clear()
        Response.ContentType = "text/xml"
        Dim objX As New XmlTextWriter(Response.OutputStream, Encoding.UTF8)

        objX.WriteStartDocument()
        objX.WriteStartElement("rss")
        objX.WriteAttributeString("version", "2.0")
        objX.WriteStartElement("channel")
        objX.WriteElementString("title", "RedChip News")
        objX.WriteElementString("link", "http://www.redchip.com")
        objX.WriteElementString("description", _
             "The latest headlines and articles from RedChip.")
        objX.WriteElementString("ttl", "5")


        Dim objConnection As New SqlConnection(_
            ConfigurationManager.ConnectionStrings(_
            "DatabaseConnectionString1").ToString)
        objConnection.Open()
        Dim sql As String = "SELECT Title, Summary, ArticleID, " & _ 
                "PostTime FROM tblArticles ORDER BY PostTime DESC"
        'Dim sql As String = "SELECT * FROM tblArticles"
        Dim objCommand As New SqlCommand(sql, objConnection)
        Dim objReader As SqlDataReader = objCommand.ExecuteReader()


        While objReader.Read()
            objX.WriteStartElement("item")
            objX.WriteElementString("title", objReader.GetString(0))
            objX.WriteElementString("description", objReader.GetString(1))
            objX.WriteElementString("link", _
                 "http://www.redchip.com/Articles/research.aspx" & _ 
                 "?ArticleID=" & CStr(objReader.GetInt16(2)))
            objX.WriteElementString("pubDate", _
                 objReader.GetDateTime(3).ToString("R"))
            objX.WriteEndElement()
        End While


        objReader.Close()
        objConnection.Close()

        objX.WriteEndElement()
        objX.WriteEndElement()
        objX.WriteEndDocument()
        objX.Flush()
        objX.Close()
        Response.End()

    End Sub
End Class
© . All rights reserved.