¡¡¡¡¿ÉÄÜ»¹ÓкܶàδÍêÉÆ,µ«ÖÕ¹é¿ÉÒÔʹÓÃÁË,ÒÔºóÔÙÂýÂý¸Ä½ø!!¡¡¡¡
¡¡¡¡ÒÔÏÂÊÇÎÒ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("/",¡¡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;
¡¡¡¡¡¡¡¡}
¡¡¡¡}