aspx简易生成RSS

GetArticlesRss.aspx

<%...@ Page Language="C#" AutoEventWireup="true" ContentType="text/xml"
   EnableTheming="false"
   CodeFile="GetArticlesRss.aspx.cs" Inherits="GetArticlesRss" %>
<head runat="server" visible="false"></head>

程序代码 程序代码
<asp:Repeater id="rptRss" runat="server">
   <HeaderTemplate>
      <rss version="2.0">
         <channel>
            <title><![CDATA[The Beer House: <%# RssTitle %>]]></title>
            <link><%...# FullBaseUrl %></link>
            <description>The Beer House: the site for beer fanatics</description>
            <copyright>Copyright 2005 by Marco Bellinaso</copyright>
   </HeaderTemplate>
   <ItemTemplate>
      <item>
         <title><![CDATA[<%# Eval("Title") %>]]></title>
         <author><![CDATA[<%# Eval("AddedBy") %>]]></author>
         <description><![CDATA[<%# Eval("Abstract") %>]]></description>
         <link><![CDATA[<%# FullBaseUrl + "ShowArticle.aspx?ID="+
            Eval("ID") %>]]></link>
         <pubDate><%...# string.Format("{0:R}", Eval("ReleaseDate")) %></pubDate>
      </item>
   </ItemTemplate>
   <FooterTemplate>
         </channel>
      </rss>
   </FooterTemplate>
</asp:Repeater>


程序代码 程序代码
public partial class GetArticlesRss : BasePage
{
   private string _rssTitle = "Recent Articles";
   public string RssTitle
   {
      get { return _rssTitle; }
      set { _rssTitle = value; }
   }

   protected void Page_Load(object sender, EventArgs e)
   {
      int categoryID = 0;
      if (!string.IsNullOrEmpty(this.Request.QueryString["CatID"]))
      {
         categoryID = int.Parse(this.Request.QueryString["CatID"]);
         Category category = Category.GetCategoryByID(categoryID);
         _rssTitle = category.Title;
      }

      List<Article> articles = Article.GetArticles(true, categoryID,
         0, Globals.Settings.Articles.RssItems);
      rptRss.DataSource = articles;
      rptRss.DataBind();
   }
}


ReadRss.aspx

程序代码 程序代码
<div class="sectiontitle">
<asp:Literal runat="server" ID="lblTitle"/>
<asp:HyperLink ID="lnkRss" runat="server" ToolTip="Get the RSS for this content">
   <asp:Image runat="server" ID="imgRss" ImageUrl="~/Images/rss.gif"
AlternateText="Get RSS feed" />

</asp:HyperLink>
</div>

<asp:DataList id="dlstRss" Runat="server" EnableViewState="False">
 <ItemTemplate>
    <small><%# Eval("PubDate", "{0:d}") %></small>
 <br>
 <div class="sectionsubtitle"><asp:HyperLink Runat="server" ID="lnkTitle"
    NavigateUrl='<%# Eval("Link") %>' Text='<%# Eval("Title") %>' /></div>
 <%...# Eval("Description") %>
 </ItemTemplate>
</asp:DataList>
<p style="text-align: right;">
   <small><asp:HyperLink Runat="server" ID="lnkMore" /></small></p>


程序代码 程序代码
public partial class RssReader : System.Web.UI.UserControl
{
   public string RssUrl
   {
      get { return lnkRss.NavigateUrl; }
      set
      {
         string url = value;
         if (value.StartsWith("/") || value.StartsWith("~/"))
         {
            url = (this.Page as BasePage).FullBaseUrl + value;
            url = url.Replace("~/", "");
         }
         lnkRss.NavigateUrl = url;
      }
   }

   public string Title
   {
      get { return lblTitle.Text; }
      set { lblTitle.Text = value; }
   }

   public int RepeatColumns
   {
      get { return dlstRss.RepeatColumns; }
      set { dlstRss.RepeatColumns = value; }
   }

   public string MoreUrl
   {
      get { return lnkMore.NavigateUrl; }
      set { lnkMore.NavigateUrl = value; }
   }

   public string MoreText
   {
      get { return lnkMore.Text; }
      set { lnkMore.Text = value; }
   }

 protected void Page_Load(object sender, EventArgs e)
   {
      try
      {
         if (this.RssUrl.Length == 0)
            throw new ApplicationException("The RssUrl cannot be null.");

         // create a DataTable and fill it with the RSS data,
         // then bind it to the Repeater control
         XmlDataDocument feed = new XmlDataDocument();
         feed.Load(this.RssUrl);
         XmlNodeList posts = feed.GetElementsByTagName("item");

         DataTable table = new DataTable("Feed");
         table.Columns.Add("Title", typeof(string));
         table.Columns.Add("Description", typeof(string));
         table.Columns.Add("Link", typeof(string));
         table.Columns.Add("PubDate", typeof(DateTime));

         foreach (XmlNode post in posts)
         {
            DataRow row = table.NewRow();
            row["Title"] = post["title"].InnerText;
            row["Description"] = post["description"].InnerText.Trim();
            row["Link"] = post["link"].InnerText;
            row["PubDate"] = DateTime.Parse(post["pubDate"].InnerText);
            table.Rows.Add(row);
         }

         dlstRss.DataSource = table;
         dlstRss.DataBind();
      }
      catch (Exception)
      {
         this.Visible = false;
      }
   }
}
 <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ad<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>/pagead/show_ads.js">
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值