Q:rss是什么? A:rss是在线共享内容的一种简易方式(也叫聚合内容,Really Simple Syndication 的简称,通常在时效性比较强的内容上使用RSS订阅能更快速获取信息,网站提供RSS输出,有利于让用户获取网站内容的最新更新,其实是一种能跨平台的服 务于用户的简单xml文件协议. Q:为什么要RSS? A:在这个网络知识繁华的岁月,每个人都希望能快速的知道自己关心的知识,比如我关心x站的x一个栏目,我就可以订阅该栏目的rss,如有文章发布,我就能及时的看到更新...中间的商机我就不再赘言了. OK.开始认识RSS吧. ---------------------- 二:RSS文件结构 ---------------------- 以下以RSS2.0为例说明.rss文件的核心就是xml文件,所以首先必须符合xml的构架格式. 它是以<rss version="2.0">...</rss>这种Root形式的格式. rss有一<channel>的子节点,它包含了文件的内容,在<channel>的里面,有好几个元素用以描述信息.在站点http://backend.userland.com/rss上有详细的内容,比如以下: title:标题,经常还有资料的来源信息 link:web站点的url地址 description:对网站的一个简单描述. 每条信息用以<item>元素表示,它被包含在<channel>节点里面,每个<channel>可以有多个<item>,每个<item>节点是真正的节点信息: title:列表项目的标题 link:列表项目的web url地址, description:对列表项目的简短说明, author:列表信息的作者 pubDate:发布时间. 我在这里放个例子(信息仅供参考): <rss version="2.0"> <channel> <title>5do8--专注.net,PHP</title> <link>http://www.5do8.com</link> <description>老农如是想,如是说,如是为</description> <item> <title>有话说</title> <link>http://www.5do8.com/blog/news.asp?id=480</link> <pubDate>Sun, 14 Dec 2006 21:00:00 GMT</pubDate> </item> </channel> </rss> 这里,有一个很重要的节点就是pubDate的格式,它必须符合RFC 822的标准,查看细节 .开始于三个字母长度的星期,然后是每月的天数次序,然后是3个字母的月份,然后是年份,然后是具体的时间,最后是时区. 详细信息请查看资料,我这里简短介绍. ---------------------- 三:ASP.NET输出RSS 输出rss文档的比较简单,如下例子: <%@ Page language="c#" ContentType="text/xml;charset=gb2312" %> <script language="c#" runat="server"> void Page_Load(object sender,EventArgs e) { Cmder.Data.MsSql conn = new Cmder.Data.MsSql(); conn.ConnectionString=AppDataStr(); string sql="select top 5 info_id,user_id,info_title,info_time from l_info order by info_id desc"; rptRSS.DataSource =conn.MDataSet(sql); rptRSS.DataBind(); } public string AppDataStr(){ return System.Configuration.ConfigurationSettings.AppSettings["connectString"].ToString(); } string FormatForXML(object input) { string data = input.ToString(); // cast the input to a string // replace those characters disallowed in XML documents data = data.Replace("&", "&"); data = data.Replace("/"", """); data = data.Replace("'", "'"); data = data.Replace("<", "<"); data = data.Replace(">", ">"); return data; } </script> <asp:Repeater id="rptRSS" runat="server"> <HeaderTemplate> <?xml version="1.0" encoding="gb2312"?> <?xml-stylesheet href="rss.xsl" type="text/xsl" media="all"?> <rss version="2.0" xmlns:slash="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <channel> <title>老农专注数据库编程</title> <link>http://www.5do8.com/</link> <description>老农如是想如是为</description> <copyright>copyright by 5do8</copyright> </HeaderTemplate> <ItemTemplate> <item> <title><%# FormatForXML(DataBinder.Eval(Container.DataItem, "info_title")) %></title> <description> <%# FormatForXML(DataBinder.Eval(Container.DataItem, "info_title")) %> </description> <link> http://www.5do8.com/blog/news.asp?id=<%# DataBinder.Eval(Container.DataItem, "info_id") %> </link> <author><%# FormatForXML(DataBinder.Eval(Container.DataItem, "user_id")) %></author> <pubDate> <%# String.Format("{0:R}", DataBinder.Eval(Container.DataItem, "info_time")) %> </pubDate> </item> </ItemTemplate> <FooterTemplate> </channel> </rss> </FooterTemplate> </asp:Repeater> 如果您的数据量比较大的话,建议参与文件缓存或者cache等处理,不要每次都读取数据库. 最后,使用了xsl样式表样式格式化了rss