English(beta)
hfyb的Blog 页面正在加载中 .....

用ASP.NET做一个自己的新闻发布RSS

引子http://www.cnblogs.com/heekui/archive/2007/01/27/631673.html


目前的网站项目里面有一块资讯的栏目,这一次项目组决定用RSS的方式发布,与国际接轨哈。呵呵~
       那么我们的新闻资讯需要生成一些频道的RSS文件,还是祭起我们的老伙计:ASP.NET,让它去动态生成这个中规中矩的XML文件吧!

       首先我们可得完成RSS的生成类,Channel(频道) 和 Item(条目),在这里只是按RSS的规则添加了一些必要的节点项目。

类图


ITEM类:很简单,定义了一个条目信息常用的一些元素

using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;

public class Item
{
    
字段 

    
属性

    
构造函数
}

CHANNEL类:常用的频道信息,以及一个条目组,对条目组的添加方法,以及把CHANNEL导出XML的一些方法。组成XML文件时,没有传统意义上的XmlDocument的操作方式,感觉麻烦,不若直接按格式凑文本来的快。^_*

using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Data;
using System.IO;
using System.Text;
using System.Xml;

public class Channel
{
    
字段

    
属性

    
构造函数

    
方法
}


类做好了,接下来完成RSS页的代码构建。前台不用管它,需要做的是它的cs程序:

RSS.aspx .cs: 从数据库获取频道和条目信息,组成RSS文件。
访问时,可加上连接字符串,改变频道,例如:
http://localhost/xmlDataSet/Rss.aspx?channel=00001
http://localhost/xmlDataSet/Rss.aspx?channel=00002

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.Xml;
using System.Data.OleDb;

public partial class Rss : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    
{
        
//made by hekui 2007-01-27

        
#region 根据查询字符串,判断查看的频道
        
string strChannel_ID;

        
if (string.IsNullOrEmpty(Request["channel"]))
        
{
            strChannel_ID 
= "00001";
        }

        
else
        
{
            strChannel_ID 
= Request["channel"];
        }

        
#endregion


        
构造频道信息

        
构造条目信息

        
#region RSS内容导出
        Response.Clear();
        Response.ClearContent();
        Response.ClearHeaders();
        Response.ContentType 
= "text/xml;charset='utf-8'";
        Response.Write(channel.GetRSS());
        Response.End();
        
#endregion

    }


    
获取数据库链接

    
根据SQL获取DataTable
}

示例程序:/Files/heekui/xmlDataSet.rar
示例程序里还有一个页面:一个简易的RSS阅读器,代码处理没按套路出牌,直接DataSet装载RSS源的。数据库玩惯了,Table的操作习惯些。

posted on 2007-01-29 02:29  hfyb  阅读(793)  评论(1编辑  收藏  举报

导航