RSS协议简介

RSS是在线共享内容的一种简易方式(也叫聚合内容),通常在时效性比较强的内容上使用RSS订阅能更快速获取信息,网站提供RSS输出,有利于让用户获取网站内容的最新更新。

本文是RSS文件格式的简要介绍。

 

RSS 2.0 概述

那么RSS究竟代表什么呢?比较普遍的有两种说法,一种是“Rich Site Summary”或“RDF Site Summary”,另一种是“Really Simple Syndication”,之所以有这些分歧,需要从RSS发展的历史说起。

最初的0.90版本RSS是由Netscape公司设计的,目的是用来建立一个整合了各主要新闻站点内容的门户,但是0.90版本的RSS规范过于复杂,而一个简化的RSS 0.91版本也随着Netscape公司对该项目的放弃而于2000年暂停。

不久,一家专门从事博客写作软件开发的公司UserLand接手了RSS 0.91版本的发展,并把它作为其博客写作软件的基础功能之一继续开发,逐步推出了0.92、0.93和0.94版本。随着网络博客的流行,RSS作为一种基本的功能也被越来越多的网站和博客软件支持。

在 UserLand公司接手并不断开发RSS的同时,很多的专业人士认识到需要通过一个第三方、非商业的组织,把RSS发展成为一个通用的规范,并进一步标准化。于是2001年一个联合小组在0.90版本RSS的开发原则下,以W3C新一代的语义网技术RDF(Resource Description Framework)为基础,对RSS进行了重新定义,发布RSS1.0,并将RSS定义为“RDF Site Summary”。但是这项工作没有与UserLand公司进行有效的沟通,UserLand公司也不承认RSS 1.0的有效性,并坚持按照自己的设想进一步开发出RSS的后续版本,到2002年9月发布了最新版本RSS 2.0,UserLand公司将RSS定义为“Really Simple Syndication”。

目前RSS已经分化为RSS 0.9x/2.0和RSS 1.0两个阵营,由于分歧的存在和RSS 0.9x/2.0的广泛应用现状,RSS 1.0还没有成为标准化组织的真正标准。

RSS 文件形式

先看一个RSS样例文件:

  1.  
  2. <?xml version="1.0"?>
  3. <rss version="2.0">
  4.     <!– 以下为频道信息及新闻列表 –>
  5.     <channel>
  6.         <!– 频道总体信息:开始 –>
  7.         <!– 频道标题 –>
  8.         <title>Lift Off News</title>
  9.         <!– 频道链接的总地址 –>
  10.         <link>http://liftoff.msfc.nasa.gov/</link>
  11.         <!– 频道描述文字 –>
  12.         <description>Liftoff to Space Exploration.</description>
  13.         <!– 频道使用的语言(zh-cn表示简体中文) –>
  14.         <language>en-us</language>
  15.         <!– 频道发布的时间 –>
  16.         <pubDate>Tue, 10 Jun 2003 04:00:00 GMT</pubDate>
  17.         <!– 频道最后更新的时间–>
  18.         <lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate>
  19.         <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  20.         <!– 频道生成器 –>
  21.         <generator>Weblog Editor 2.0</generator>
  22.         <managingEditor>editor@example.com</managingEditor>
  23.         <webMaster>webmaster@example.com</webMaster>
  24.         <ttl>5</ttl>
  25.         <!– 频道总体信息:结束 –>
  26.         <!– 每条RSS新闻信息都包含在item节点中, –>
  27.         <item>
  28.             <!– 新闻标题 –>
  29.             <title>Star City</title>
  30.             <!– 新闻链接地址 –>
  31.             <link>http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp</link>
  32.             <!– 新闻内容简要描述 –>
  33.             <description>How do Americans get ready to work with Russians aboard the
  34.             International Space Station? They take a crash course in culture, language
  35.             and protocol at Russia’s Star City.</description>
  36.             <!– 新闻发布时间 –>
  37.             <pubDate>Tue, 03 Jun 2003 09:39:21 GMT</pubDate>
  38.             <!– 新闻目录 –>
  39.             <category>IT</category>
  40.             <!– 新闻作者 –>
  41.             <author>bill</author>
  42.             <guid>http://liftoff.msfc.nasa.gov/2003/06/03.html#item573</guid>
  43.         </item>
  44.         <item>
  45.             <title>Space Exploration</title>
  46.             <link>http://liftoff.msfc.nasa.gov/</link>
  47.             <description>Sky watchers in Europe, Asia, and parts of Alaska and Canada
  48.             will experience a partial eclipse of the Sun on Saturday, May 31st.</description>
  49.             <pubDate>Fri, 30 May 2003 11:06:42 GMT</pubDate>
  50.             <guid>http://liftoff.msfc.nasa.gov/2003/05/30.html#item572</guid>
  51.         </item>
  52.         <item>
  53.             <title>The Engine That Does More</title>
  54.             <link>http://liftoff.msfc.nasa.gov/news/2003/news-VASIMR.asp</link>
  55.             <description>Before man travels to Mars, NASA hopes to design new engines
  56.             that will let us fly through the Solar System more quickly. The proposed
  57.             VASIMR engine would do that.</description>
  58.             <pubDate>Tue, 27 May 2003 08:37:32 GMT</pubDate>
  59.             <guid>http://www.zhanghangfeng.cn/rss.xml</guid>
  60.         </item>
  61.         <item>
  62.             <title>Astronauts’ Dirty Laundry</title>
  63.             <link>http://liftoff.msfc.nasa.gov/news/2003/news-laundry.asp</link>
  64.             <description>Compared to earlier spacecraft, the International Space
  65.             Station has many luxuries, but laundry facilities are not one of them.
  66.             Instead, astronauts have other options.</description>
  67.             <pubDate>Tue, 20 May 2003 08:56:02 GMT</pubDate>
  68.             <guid>http://liftoff.msfc.nasa.gov/2003/05/20.html#item570</guid>
  69.         </item>
  70.     </channel>
  71. </rss>
  72.  

RSS 文件由一个 channel 元素及其子元素组成。除了频道内容本身之外,channel 还以item的形式包含表示频道元数据的元素 —— 比如 title、link 和 description。通常是频道的主要部分,包含经常变化的内容。

频道<channel>

频道一般有三个元素,提供关于频道本身的信息:

  • <title>:频道或提要的名称。
  • <link>:与该频道关联的 Web 站点或者站点区域的 URL。
  • <description>:简要介绍该频道是做什么的。

许多频道子元素都是可选的。常用的 <image> 元素包含三个必需的子元素:

  • <url>:表示该频道的 GIF、JPEG 或 PNG 图像的 URL。
  • <title>:图象的描述。当频道以 HTML 呈现时,用作 HTML  标签的 ALT 属性。
  • <link>:站点的 URL。如果频道以 HTML 呈现,该图像作为到这个站点的链接。

<image> 还有三个可选的子元素:

  • <width>:数字,表示图象的像素宽度,最大值是 188,默认值为 88。
  • <height>:数字,表示图象的像素高度。最大值是 400,默认值为 31。
  • <description>:包含文本,在呈现时可以作为围绕着该图像形成的链接元素的 title 属性。

此外还可以使用许多其他可选的频道元素。多数都是不言自明的:

  • <language>:en-us
  • <copyright>:Copyright 2003, James Lewin
  • <managingEditor>:dan@spam_me.com (Dan Deletekey)
  • <webMaster>:dan@spam_me.com (Dan Deletekey)
  • <pubDate>:Sat, 15 Nov 2003 0:00:01 GMT
  • <lastBuildDate>:Sat, 15 Nov 2003 0:00:01 GMT
  • <category>:ebusiness
  • <generator>:Your CMS 2.0
  • <docs>:http://blogs.law.harvard.edu/tech/rss
  • <cloud>:允许进程注册为“cloud”,频道更新时通知它,为 RSS 提要实现了一种轻量级的发布-订阅协议。
  • <ttl>:存活时间 是一个数字,表示提要在刷新之前缓冲的分钟数。
  • <rating>:关于该频道的 PICS 评价。
  • <textInput>:定义可与频道一起显示的输入框。
  • <skipHours>:告诉聚集器哪些小时的更新可以忽略。
  • <skipDays>:告诉聚集器那一天的更新可以忽略。

项<itml>

项通常是提要中最重要的部分。每个项都可以关于某个 weblog、完整文档、电影评论、分类广告或者任何希望与频道连锁的内容的记录。频道中的其他元素可能不变,但项经常发生变化。

您可以有任意多个项。以前的规范限值为 15 个项,如果要保持向后兼容这仍然是一个很好的上限。

每个项通常包含三个元素:

  • <title>:这是项的名称,在标准应用中被转换成 HTML 中的标题。
  • <link>:这是该项的 URL。title 通常作为一个链接,指向包含在 <link> 元素中的 URL。
  • <description>:通常作为 link 中所指向的 URL 的摘要或者补充。
    所有的元素都是可选的,但是一个项至少要么 包含一个 <title>,要么包含一个 <description>。
    • <author>:作者的 e-mail 地址。
    • <category>:支持有组织的记录。
    • <comments>:关于项的注释页的 URL。
    • <enclosure>:支持和该项有关的媒体对象。
    • <guid>:唯一与该项联系在一起的永久性链接。
    • <pubDate>:该项是什么时候发布的。
    • <source>:该项来自哪个 RSS 频道,当把项聚合在一起时非常有用。
  • 项还有其他一些可选的元素:

posted @ 2011-05-26 15:09  ╰☆Everytime I try to flying  阅读(920)  评论(0编辑  收藏  举报