您的位置:首页 > 其它

关于如何制作Rss的一种简单方法

2008-04-01 08:40 621 查看
很多朋友问到很多网页上面都有一个

的标志,为什么这样呢?用来有什么用呢?怎么做呢?好,下面我们就简单的分析一下!站点用来和其他站点之间共享内容的简易方式(也叫聚合内容)。 RSS使用XML作为彼此共享内容的标准方式。用处就不多说了,大家关心的还是怎么做!
首先数据库设计,如图:

好,下面我们开始做页面,我使用的是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("&","&");
data=data.Replace("/",""");
data=data.Replace("'","&qapos;");
data=data.Replace("<","<");
data=data.Replace(">",">");
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格式,会导致失败
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐