RSS原理、创建及使用——Denis Sureau

来源:互联网 发布:淘宝开店银行卡认证 编辑:程序博客网 时间:2024/05/22 10:36

很郁闷的是Google Reader倒了才开始使用RSS阅读,InoReader是一个不错的替代。对于RSS的原理想要有个了解,但是网上的资料说得不是很清晰。有一篇CSDN的RSS原理和实现博文也不错,在Wiki的Reference上也发现一篇不错的文章。翻译如下:


什么是RSS?
RSS是一种共享消息的格式规范,这种格式规范定义在XML 1.0版本中。你可以通过这种格式传递信息给其他人,可以通过这种格式从各种来源接受消息。一个网站所提供的信息记录在特定XML文件中称为RSS feed。
最近的浏览器可以直接阅读RSS文件,但需要使用一个特殊的RSS阅读器或聚合器。

RSS历史
RSS由网景公司在1999年开发。第一个版本为 RSS 0.90。2000年,UserLand公司改进发布了正式的 0.91 规范。
2000年,O'Reilly 开发出基于RDF的RSS 1.0 规范,由RSS-DEV团队进一步维护,命名为RDF Site Summary。
2002年,Dave Winer(UserLand前员工)在哈佛大学开发出RSS 2.0.
该页面是基于Really Simple Syndication,哈佛大学的2.01规范。(This page is based on the Really Simple Syndication, 2.01 specification from Harvard.此句不知如何翻译,望有高人指点)。

为什么使用RSS?
以计算机可以处理的特定格式来获得网站提供的信息或新闻。将获得信息或新闻展示在网页上,或者供自己阅读。
对于内容的提供者,RSS允许他发送自己网站的信息和新闻。

RSS如何工作?
RSS系统通过网络发布文章和新闻的原理非常简单:
   1. 首先,我们有一些想要在其他网页展示的页面,这些页面称为RSS feed。
   2. RSS feed由一个XML文件定义,该XML文件包括每个想要展示页面的URL,标题和摘要。
   3. 想要在自己电脑上阅读RSS feed,只需使用RSS阅读器或者浏览器,将这些feed添加到你的阅读器中。
   4. 其他接收者网站想要显示 feed 须要从提供者处获得RSS文件,提取URL页面,并显示标题和摘要。这些工作可以通过PHP脚本完成。
   5. 当有人想要访问接收者网站时,启动脚本,调用从提供者网站获取的RSS文件,抽取信息从而显示新闻列表
   6. 通过点击新闻列表中的某一项,可以访问该新闻提供者的原网页

RSS文档结构
RSS文档是一个XML文件和一个通用的2.0规范的“RSS”标签容器。
这个文件拥有至少一个channel。内容为网站所提供的信息。
channel提供一些文章和数据来自于相同或者不同的网站。

怎样使用RSS?
  1-在桌面应用中使用RSS
RSS feed 通过Internet Explorer 7 或 Firefox 2显示。一个RSS阅读器(或聚合器)也可以被安装在操作系统中(Windows,Linux,Mac OS等等)。在参考资料中,有一个通过XUL构建。
获取的内容取决于读者,添加一个feed进列表,也许只需要点击“添加”按钮来获得RSS feed的URL。

  2 -在网站中使用feed
RSS feed显示为标题的列表(或者可选的摘要)。点击特定标题展示新闻内容。标题为自动更新。每当页面加载RSS文件并且从中抽取数据时,PHP或者其他语言脚本建立新的列表并显示在页面上。在参考资料中提供了一些这类工具的链接。

怎样通过RSS feed发布新闻?
有几种生成RSS feed的方法。
     · 使用PHP的RSS库。PHP脚本能从标题和页面内容的描述生成XML文件。
     · 使用特殊的工具从页面抽取信息。
给出一个XML文件的访问链接如右:
<a type="application/rss+xml" href="http://ww.xul.fr/rss.xml">    RSS feed for this site</a>
feed在Atom格式下使用"application/atom+xml"代替。
用你网站的域名替换xul.fr。

名词解释
   · Feed. "item"标签的集合,信息或者新闻的集合。
   · RDF. 见本网站的RDF页面
   · Syndicated. Published through an RSS feed.
   · Syndication. Publishing data by RSS feeds.

主要的RSS标签
rss. 通用容器
channel. 分布的频道(A distributing channel)。它包含几个描述性的标签和一个或以上item。
<rss version="2.0"><channel>...</channel></rss>

  channel中必要的标签
    · title. channel的标题。应该包含名字。
    · link. 提供该channel的网站URL。
    · description. 提供者信息的摘要。
    · item. 至少需要一个item标签,提供内容。
<rss version="2.0"><channel>    <title>XUL</title>    <link>http://www.xul.fr</link>    <description></description>    <item>    ...    </item></channel></rss>

  channel中可选的标签
    · language. 文本中使用的自然语言(英语、汉语等)。
    · docs.  提供文件格式的文档的位置,可能是哈佛大学。
    · webMaster. E-mail
    · pubDate. 发布时间。
    · 等等。更多参加规范文档。

 channel中的item
每个item标签必须包含下列标签:
    · title. 文章的标题。
    · link. 文章的链接。
    · description. 文章的摘要。
<item>  <title>XUL news</title>  <link>http://www.xul.fr/index.php</link>  <description>... some text...</description></item> 

 一些可选的item标签:
    · pubDate. 发布时间。
    · guid. 指定item的唯一性的字符串
    · cate gory. 文章的分类
    · 等等

按步建立个人RSS feed
首先,这仅仅是一个简单的文本文件,通过任何文本编辑器创建。但使用一个XML编辑器将会更加方便。(参见"software"页面)。该文件名字可以是"feed.xml"。
整体结构如下:
<?xml version="1.0" ?><rss version="2.0"><channel></channel>

  1)通过channel标签定义源
channel对于你的所有RSS feed将是一样的。下列标签是必须的:
-title:你网站的名称,可能是你主页的标题标签内容。
-link:你网站的URL,例如:http://www.xul.fr
-description:你网站的描述,大约200个字符,可能是你主页标题区域的description标签的内容。
<channel><title>XUL and XML</title><link>http://www.xul.fr/en/</link><description>XML graphical interface etc...</description></channel> 

  2)添加图像
这是一个可选项。设计一个小的图表(例如88x31),使用通用格式(gif, jpg, png)并且把它放在RSS文件的同一个目录下。
"image"标签是channel标签的子元素。
-url 是图像的地址
-link 是点击图像时链接的地址
<channel><title> </title><link> </link><image>    <url>http://www.xul.fr/xul.gif</url>   <link>http://www.xul.fr/en/index.php</link></image></channel>

  3)添加新消息
现在,我们将会添加一个网页来显示信息。由"item"标签实现,"item"标签是channel的子元素和必要组件。
-title:文章的标题
-link:页面的URL
-description:文章的摘要,大约200个字符
<item><title>News of today</title><link>http://www.xul.fr/en-xml-rss.html</link><description>All you need to  know about RSS</description></item> 

  4)添加更多item
更多item可以被添加到这个channel

  5)上传文件
将feed.xml文件放到你的网站中,和其他网页放在一起。

  6)验证文件
你也许需要使用在线的RSS feed validator。

  7)使RSS可获得
在主页里添加RSS按钮。点击按钮需要显示你所创造的XML文件
<a href="http://www.xul.fr/rss.xml">   <img src="rss.gif"></a>

  8)更新feed
你仅需要添加item标签来发布更多的文章,删除旧的item标签来保持总文章数一定。

例子:完整的文件
<?xml version="1.0" ?><rss version="2.0"><channel>  <title>Ajax and XUL</title>  <link>http://www.xul.fr/en/</link>  <description>XML graphical interface etc...</description>  <image>      <url>http://www.xul.fr/xul-icon.gif</url>      <link>http://www.xul.fr/en/index.php</link>  </image>  <item>      <title>News  of today</title>      <link>http://www.xul.fr/en-xml-rss.html</link>      <description>All you need to know about RSS</description>  </item>  <item>      <title>News of tomorrows</title>      <link>http://www.xul.fr/en-xml-rdf.html</link>      <description>And now, all about RDF</description>    </item></channel></rss> 
你可以下载例子,并且使用它作为模板,记得用你网站的域名替换xul.fr。

浏览器怎么知道网站上有RSS feed?
你已经创建了RSS feed,并且它现在存储在你网站的根目录下。当浏览器进入主页时(或者其他你想要的页面),你必须让它知道这个文件的存在和它的位置。 Firefox 会在URL区域显示feed图标,而 Internet Explorer会在控制栏显示。
为了激活它们,将下面的代码插入你网页的源代码中 <head> </head>部分的任意位置。
<link rel="alternate" type="application/rss+xml"  href="http://www.xul.fr/rss.xml" title="Your title">
用你网站的域名下的RSS feed文件位置替换此URL。
如果文件是atom格式,用atom+xml替换rss+xml

规范和工具
文档规范
  • RSS 2.0 specification. Defined by Harvard.
  • RSS 1.0 Tutorial.

生成并显示RSS feed的工具
  • Feed Validator. 输入你文件的URL来检查feed。
  • Bioloide. PHP编写的在线RSS生成器和编辑器
  • RSS Reader. PHP函数用于在一个网页上显示本地或远程的RSS feed。

0 0
原创粉丝点击