rss现在很流行,它推行的一套xml格式的标准来传输数据,和webservice差不多,不过它必须遵从一套它自己的标准。
创建rss有很多种方式,最终的目的是形成一个xml文档的输出流,这个文档要符合一定的标准格式。找到一种比较简单的形成rss的方法,使用repeater来绑定重复的xml节点。
新建一个webform Rss.aspx,在html视图中删除除了第一行页面声明以外的其它代码,写上以下xml格式的代码
1<%@ Page language="c#" Codebehind="Rss.aspx.cs" AutoEventWireup="false" Inherits="RSSReader.Rss" %>
2<?xml version="1.0" ?>
3<rss version="2.0">
4 <channel>
5 <title>测试rss</title>
6 <link>http://zqs.cnblogs.com/</link>
7 <description>测试rss</description>
8 <language>zh-cn</language>
9 <asp:Repeater id="Repeater1" runat="server">
10 <ItemTemplate>
11 <item>
12 <title><%#DataBinder.Eval(Container.DataItem,"sch_name")%></title>
13 <description><![CDATA[<%#DataBinder.Eval(Container.DataItem,"sch_name")%>]]></description>
14 <pubDate><%#((DateTime)DataBinder.Eval(Container.DataItem,"indate")).ToString("r") %></pubDate>
15 <link>http://zqs.cnblogs.com/show.aspx?id=<%# DataBinder.Eval(Container.DataItem, "sch_no") %></link>
16 </item>
17 </ItemTemplate>
18</asp:Repeater>
19</channel>
20</rss>
21
2<?xml version="1.0" ?>
3<rss version="2.0">
4 <channel>
5 <title>测试rss</title>
6 <link>http://zqs.cnblogs.com/</link>
7 <description>测试rss</description>
8 <language>zh-cn</language>
9 <asp:Repeater id="Repeater1" runat="server">
10 <ItemTemplate>
11 <item>
12 <title><%#DataBinder.Eval(Container.DataItem,"sch_name")%></title>
13 <description><![CDATA[<%#DataBinder.Eval(Container.DataItem,"sch_name")%>]]></description>
14 <pubDate><%#((DateTime)DataBinder.Eval(Container.DataItem,"indate")).ToString("r") %></pubDate>
15 <link>http://zqs.cnblogs.com/show.aspx?id=<%# DataBinder.Eval(Container.DataItem, "sch_no") %></link>
16 </item>
17 </ItemTemplate>
18</asp:Repeater>
19</channel>
20</rss>
21
代码说明:
建立一个xml格式的文档,然后用Repeater来重复显示数据行节点
该页面的后置代码文件Rss.cs中的代码如下,在该页面的Page_Load事件中写上如下代码:
1 SqlConnection conn = new SqlConnection("server=.;database=test;uid=sa;pwd=;");
2
3 System.Data.SqlClient.SqlDataAdapter myComm = new SqlDataAdapter("select * from dSchool",conn);
4
5 DataSet ds = new DataSet();
6
7 myComm.Fill(ds,"Table1");
8
9 Response.ContentType="Text/XML";
10 Repeater1.DataSource = ds;
11
12 Repeater1.DataBind();
2
3 System.Data.SqlClient.SqlDataAdapter myComm = new SqlDataAdapter("select * from dSchool",conn);
4
5 DataSet ds = new DataSet();
6
7 myComm.Fill(ds,"Table1");
8
9 Response.ContentType="Text/XML";
10 Repeater1.DataSource = ds;
11
12 Repeater1.DataBind();
代码说明:
使用Response.ContentType="Text/XML";将页面的输出流设置为xml格式,其它就是得到数据集绑定Repeater了