可能还有很多未完善,但终归可以使用了,以后再慢慢改进!!   
以下是我RSS界面的后台代码,给需要的朋友提供下我的经验:   
复制代码 代码如下:
using System; 
using System.Data; 
using System.Configuration; 
using System.Collections; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls;  
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 
using System.Data; 
using System.Data.SqlClient; 
using System.Xml; 
using System.IO; 
using System.Web.Configuration; 
public partial class rss : System.Web.UI.Page 
{ 
    string   HostUrl;  
    string   HttpHead; 
    protected void Page_Load(object sender, EventArgs e) 
    { 
        HttpContext context = HttpContext.Current; 
        HostUrl = context.Request.Url.ToString(); 
        HostUrl = HostUrl.Substring(0, HostUrl.IndexOf("https://www.jb51.net/", 8)); 
        XmlTextWriter writer = new XmlTextWriter(context.Response.OutputStream, System.Text.Encoding.UTF8); 
        WriteRSSPrologue(writer); 
        WriteRSSHeadChennel(writer); 
        string sql = "select top 10 title,id,time,content from blog_title order by time desc"; 
        SqlDataReader dr = dbconn.ExecuteReader(sql); 
        while (dr.Read()) 
        { 
            AddRSSItem(writer, (((DateTime)dr["time"]).ToUniversalTime()).ToString("r"), dr["title"].ToString(), HostUrl, dr["content"].ToString()); 
        } 
        dr.Close(); 
        writer.Flush(); 
        writer.Close(); 
        context.Response.ContentEncoding = System.Text.Encoding.UTF8; 
        context.Response.ContentType = "text/xml"; 
        context.Response.Cache.SetCacheability(HttpCacheability.Public); 
        context.Response.End(); 
    } 
    private XmlTextWriter WriteRSSPrologue(XmlTextWriter writer) 
    { 
        writer.WriteStartDocument(); 
        writer.WriteStartElement("rss"); 
        writer.WriteAttributeString("version", "2.0"); 
        writer.WriteAttributeString("xmlns:dc", "http://purl.org/dc/elements/1.1/"); 
        writer.WriteAttributeString("xmlns:trackbac", "http://madskills.com/public/xml/rss/module/trackback/"); 
        writer.WriteAttributeString("xmlns:wfw", "http://wellformedweb.org/CommentAPI/"); 
        writer.WriteAttributeString("xmlns:slash", "http://purl.org/rss/1.0/modules/slash/"); 
        return writer; 
    } 
    private XmlTextWriter WriteRSSHeadChennel(XmlTextWriter writer) 
    { 
            writer.WriteStartElement("channel"); 
            writer.WriteElementString("title", "编程博客(Nickeyj's Blog) - 最新日志"); 
            writer.WriteElementString("link", HostUrl + "/ "); 
            writer.WriteElementString("description", "编程博客(Nickeyj's Blog)"); 
            writer.WriteElementString("copyright", "2008 "); 
            writer.WriteElementString("generator", "编程博客(Nickeyj's Blog)   RSS   生成器   2.0 "); 
        return writer; 
    } 
    private XmlTextWriter AddRSSItem(XmlTextWriter writer, string pubDate, string sItemTitle, string sItemLink, string sItemDescription) 
    { 
        writer.WriteStartElement("item"); 
        writer.WriteElementString("title", sItemTitle); 
        writer.WriteElementString("link", sItemLink); 
        writer.WriteElementString("description", sItemDescription); 
        writer.WriteElementString("pubDate", pubDate); 
        writer.WriteEndElement(); 
        return writer; 
    } 
    private XmlTextWriter AddRSSItem(XmlTextWriter writer, string sItemTitle, string sItemLink, string sItemDescription, bool bDescAsCDATA) 
    { 
        writer.WriteStartElement("item"); 
        writer.WriteElementString("title", sItemTitle); 
        writer.WriteElementString("link", sItemLink); 
        if (bDescAsCDATA == true) 
        { 
            writer.WriteStartElement("description"); 
            writer.WriteCData(sItemDescription); 
            writer.WriteEndElement(); 
        } 
        else 
        { 
            writer.WriteElementString("description", sItemDescription); 
        } 
        writer.WriteElementString("pubDate", DateTime.Now.ToString("r")); 
        writer.WriteEndElement(); 
        return writer; 
    } 
    private XmlTextWriter WriteRSSClosing(XmlTextWriter writer) 
    { 
        writer.WriteEndElement(); 
        writer.WriteEndElement(); 
        writer.WriteEndDocument(); 
        return writer; 
    } 
}
您可能感兴趣的文章:
