asp.net(c#) RSS功能实现代码

    技术2025-07-25  11

    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("/", 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 www.52bcnet.com");             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;     } }

    最新回复(0)