关于如何制作Rss的一种方法!
2006-09-14 22:00
495 查看
正好自己的项目上需要生成RSS, 到处找了一些资料,这个比较浅显,转到自己的blog上来,也算是给自己留个地方!
很多朋友问到很多网页上面都有一个
的标志,为什么这样呢?用来有什么用呢?怎么做呢?好,下面我们就简单的分析一下!站点用来和其他站点之间共享内容的简易方式(也叫聚合内容)。 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格式,会导致失败!
很多朋友问到很多网页上面都有一个
的标志,为什么这样呢?用来有什么用呢?怎么做呢?好,下面我们就简单的分析一下!站点用来和其他站点之间共享内容的简易方式(也叫聚合内容)。 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格式,会导致失败!
相关文章推荐
- 关于如何制作Rss的一种简单方法![转]
- 关于如何制作Rss的一种简单方法
- 关于如何制作Rss的一种简单方法!
- 关于在网络中如何收发xml格式流的一种C#程序方法
- 关于服务器数据验证,一种比较优雅简便的Python解决方法
- 关于制作rpm包的patch的方法
- 关于枚举enum的tostring方法不能重写的一种替代方案
- 关于开发中如何防止死等程序导致其它任务运行不了方法
- 关于如何操作其他窗体的控件或变量的方法!
- 关于mysql处理百万级以上的数据时如何提高其查询速度的方法
- 关于QRegExp如何筛选出特殊字符的解决方法
- Drupal中关于表单form的drupal_get_form方法如何传递自定义参数
- 关于如何优化java代码提高效率的方法
- 关于《一种基于球面透视投影约束的鱼眼镜头校正方法》的流程
- 为OpenStack制作CentOS镜像的一种方法
- Validation failed for one or more entities. See ‘EntityValidationErrors’解决方法;关于如何查看 EntityValidationErrors 详细信息的解决方法
- 关于ext中使用 Ext.grid.CheckboxSelectionModel作为选择框如何保存选中记录的解决方法。
- 关于swift中出现 use of undeclared type ***错误的一种解决方法
- eclipse 中main()函数中的String[] args如何使用?通过String[] args验证账号密码的登录类?静态的主方法怎样才能调用非static的方法——通过生成对象?在类中制作一个方法——能够修改对象的属性值?
- Matlab 关于如何读取文件夹中的所有图片(3种方法)