逍遥游

一直在想,怎样路好走一点,一直想,一直在崎岖中徘徊。
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

.NET实现RSS格式文件

Posted on 2008-07-03 16:59  逍遥游  阅读(322)  评论(0编辑  收藏  举报

首先设计好数据库,然后开始做页面。使用Repeater控件,代码如下:ReadRss.aspx

<%@ Page language="c#" Codebehind="ReadRss.aspx.cs" AutoEventWireup="false" Inherits="MyTest.rss" ContentType="text/xml" %>
<asp:Repeater id="rptRss" runat="server">
<HeaderTemplate>
   <rss version="2.0">
    <channel>
     <title>rss测试</title>
     <link>www.sina.com.cn</link>
     <description>这是一个rss的测试</description>
</HeaderTemplate>
<ItemTemplate>
   <item>
    <title>
   
      <%# FormatForXml(DataBinder.Eval(Container.DataItem,"title"))%>
   
    </title>
    <description>
     <![CDATA[ <%# FormatForXml(DataBinder.Eval(Container.DataItem,"content"))%>]]>
    </description>
    <link>
     <%# "http://localhost/CompanySystem/shownewsdetails.aspx?newsID="+FormatForXml(DataBinder.Eval(Container.DataItem,"newsID"))%>
    </link>
    <author><%# FormatForXml(DataBinder.Eval(Container.DataItem,"author"))%></author>
    <pubDate><%# FormatForXml(DataBinder.Eval(Container.DataItem,"addTime"))%></pubDate>
    <category><%# FormatForXml(DataBinder.Eval(Container.DataItem,"className"))%></category>
   </item>
</ItemTemplate>
<FooterTemplate>
      </channel></rss>
      </FooterTemplate>
</asp:Repeater>

后置cs文件代码:

   private void Page_Load(object sender, System.EventArgs e)
   {
    if(!IsPostBack)
    {
     BindData();
    }
   }

   protected string FormatForXml(object input)
   {
    string data=input.ToString();
    data=data.Replace("&","&amp;");
    data=data.Replace("/","&quot;");
    data=data.Replace("'","&qapos;");
    data=data.Replace("<","&lt;");
    data=data.Replace(">","&gt");
    return data;
   }
   public void BindData()
   {
    SqlConnection cn=new SqlConnection("server=.;database=company;uid=sa;pwd=sa;");
    SqlDataAdapter da=new SqlDataAdapter("select * from news",cn);
    DataSet ds=new DataSet();
    da.Fill(ds);
    rptRss.DataSource=ds;
    rptRss.DataBind();
   }

注意要用FormatForXml来格式化,否则输出不符合XML格式,会导致失败!