网页教学网
 当前位置: 网页教学网 >> 网络编程 >> ASP.NET编程技术 >> 基础知识之认识和使用 RSS+asp.net
[ HTML ] [ FW ] [ DW ] [ FP ] [ JS ] [ XML ] [ CSS ] [ 图象 ] [ FLASH ] [ .NET ] [ ASP ] [ JSP ] [ PHP ] [ 数据 ] [ 系统 ] [ 安全 ] [ 素材 ] [ 建站 ] [ 主机 ] [ 入门 ] [ 技巧 ]

基础知识之认识和使用 RSS+asp.net

http://www.webjx.com  更新日期:2007-09-17 07:56  出处:网页教学网  作者:整理
  rss是最近几年很有用的一个很不错的技术,很多网站老早做了这方面的工作,小农最近也为了用户着想,2.0一下,对RSS做点推广工作.以下开始正文:

------------------------
一:关于RSS

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("'", "&apos;");
   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" xmlnsc="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.
关键词:RSS,.NET
推荐给好友】【关闭】【收藏本文
最新五条评论
查看全部评论
评论总数 0
您的评论
用户名: 新注册) 密 码: 匿名:
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为