asp.net(c#) RSS功能实现代码_实用技巧

可能还有很多未完善,但终归可以使用了,以后再慢慢改进!!  
以下是我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;
    }
}

时间: 2024-10-02 04:05:10

asp.net(c#) RSS功能实现代码_实用技巧的相关文章

ASP.NET MVC验证码功能实现代码_实用技巧

前台 复制代码 代码如下: <img id="vcodeimg" src="/Home/VCode" width="70"                                    height="25" />                                 <span                                    style="cursor: p

MVC4制作网站教程第二章 部分用户功能实现代码_实用技巧

用户部分要实现的功能有: 序 一.用户  1.1用户注册  1.2用户登录  1.3修改密码  1.4修改资料 要实现这些目的首先新建用户(Model)模型 /// <summary> /// 用户模型 /// </summary> public class User { [Key] public int UserId { get; set; } /// <summary> /// 用户组Id /// </summary> [Display(Name=&qu

MVC4制作网站教程第四章 部分栏目功能实现代码_实用技巧

序 一.用户 二.用户组 三.栏目 3.1添加栏目 3.2浏览栏目 3.3更新栏目 3.4删除栏目 3.5前台栏目浏览 -- 栏目模型: 模型应有一下字段:栏目名称,父栏目id,栏目类型,内容模型,栏目视图,内容视图,链接地址,栏目排序.暂时先想到这么多,先这这么写着.  栏目名称和父栏目id不用说很简单.  栏目类型有三种:普通栏目-就是一般的栏目:单页栏目--是指栏目就是一个页面,像公司介绍,联系地址等:外部链接-是指栏目点一下就跳转到一个链接.  内容模型--是指栏目为普通栏目时,栏目的内

ASP.NET 水晶报表打印功能实现代码_实用技巧

1.用IE的打印,调用window.print(),但这种办法对于页面上即有报表,又有其它控件情况就无法区分,不能达到只打印报表内容的目的: 2.自已写打印代码 代码如下: 复制代码 代码如下: CrystalDecisions.CrystalReports.Engine.ReportDocument rd=new CrystalDecisions.CrystalReports.Engine.ReportDocument(); rd.Load(Server.MapPath("Crystalrep

asp.net 操作excel的实现代码_实用技巧

Excel是Microsoft公司的Office套件中的一种软件,他主要用来处理电子表格.Excel以界面友好.处理数据迅速等优点获得广大办公人员的欢迎.所以很多文档就以Excel的形式保存了下来.对于程序设计人员,在程序设计中,我们往往要访问Excel文件来获得数据.但由于Excel文件不是标准数据库,所以用程序语言来访问他就比较困难.  ASP.NET是Microsoft公司极力推荐的一个产品,作为.NET FrameWork框架中的一个重要组成部分,他主要用于Web设计.全新的设计理念.强

GridView中加上CheckBox 的全选功能的代码_实用技巧

首先我們當然是要先做出一個有資料的GridViewGridView做好後,我們在後方新增一個樣板欄位(TemplateField)請在新增的樣板欄位中的HeaderTemplate加入一個CheckBox作為全選用,然後在ItemTemplate也加入一個CheckBox 复制代码 代码如下: <asp:TemplateField>                          <HeaderTemplate>                              <

ASP.NET MVC3的伪静态实现代码_实用技巧

现在开始研究第一步,如何定义自己的路由规则,达到伪静态的功能需求. 基本实现原理如下图:   首先,关于命名空间. 路由的功能是为了让所有Asp.net网站开发都可以使用,所以dll并没有在MVC中,而是在System.Web中的System.web.Routing. 现在我们为了我们实际的需求,实现MVC3中的自定义路由功能(继承RouteBase,重写RouteData和VirtualPathData). 下面的例子实现以下目的:输入一个youdomin.com/product/123.ht

Asp.net 连接MySQL的实现代码[]_实用技巧

Mysql的connector/net5.0下载地址: http://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-5.0.6.zip/from/pick 安装好以后, 点属性,然后点查找目标,点向上一层目录,找到Binaries\.NET 2.0,然后将这个文件复制到你的工程目录下,一般这样的DLL文件会保存到bin目录下. 在代码页里输入using Mysql.Data.MysqlClient;然后再在Page_L

ASP.NET 恢复备份Sqlserver实现代码_实用技巧

最近做的一个项目因为服务器是在特殊机房上的,因为安全方面的考虑,不能给我们开发者提供FTP服务,所以每次更新版本都得自己跑一趟,而他的机房有很远,所以我一直想能不能开发一个维护版本的系统呢,对数据库和代码进行在线更新,就不用自己跑了,于是就有了下面的尝试,在线恢复和备份SQL Server: 前台代码: 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SqlDb