现在的位置: 首页 > 综合 > 正文

学习RSS2.0规范

2012年11月24日 ⁄ 综合 ⁄ 共 3350字 ⁄ 字号 评论关闭

 

目前需要制作一个RSS阅读器,看看RSS2.0规范先。首先给出RSS的定义,给出了书写RSS2.0规范时使用的书签,接着,详细的描述了每个标签元素的用法和范例,最后给出了基于RSS2.0标准的XML文档。

 

 

什么是RSS

 

RSSReally Simple Syndication),是一种网页内容联合格式(web content sydication format)。RSSXML的一种。所有的RSS文档都遵循XML 1.0规范,该规范发布在W3C网站上。

在一个RSS文档的开头是一个<rss>节点和一个规定的属性version,该属性规定了该文档将以RSS的哪个版本表示。如果该文档以这个规范来表示,那么它的version属性就必须等于2.0

<rss>节点的下一级是一个独立的<channel>节点,该节点包含关于channel的信息和内容。

内容信息使用< item>节点表示,< item>的子节点有titlelinkauthorpubDatedescription

rss每个RSS Feed,都有而且只能有一个rss标签,作为顶层元素

channelRSS标签下,必须有且只能有一个channel标签

item可以出现多个item,每个item,描述一条日志信息

title日志的标题

link日志的URL访问地址

author日志的作者

pubDate日志的发布日期

description日志的内容

 

 

必需的频道节点

下面有一份必须包含的频道(channel)节点的列表,每一个都有一个简单的描述、一个例子、应该出现的位置和更详细描述的超链接。如下表所示:

元素

描述

范例

title

频道(channel)名称。它可以告诉别人如何访问你的服务。如果你有一个与你的RSS文件内容一致的HTML网站,你的title元素值应该与你的网站的标题相同。

GoUpstate.com News Headings

link

响应该频道的网站的URL

http://www.goupstate.com/

description

关于该频道的描述

The latest news from GoUpstate.com

 

 

可选的频道元素

下面是可选的频道元素列表

节点

描述

范例

language

使用的语言。这允许聚合器对所有的意大利语站点分组。

en-us

copyright

版权声明

 Copyright 2002, Spartanburg Herald-Journal

managingEditor

内容负责人的Email

geo@herald.com (George Matesky)

webMaster

技术人员的Email

betty@herald.com (Betty Guernsey)

pubDate

内容的发布时间

Sat, 07 Sep 2002 00:00:01 GMT

lastBuildDate

最后更新时间

Sat, 07 Sep 2002 09:42:31 GMT

category

指定该频道所属的一个或多个分类。遵循与itemcategory元素相同的规则。

<category>Newspapers</category>

generator

生成该频道的程序名称

MightyInHouse Content System v2.3

docs

指向rss格式文档的url地址?

http://blogs.law.harvard.edu/tech/rss

cloud

允许所有进程注册一个cloud用于获得频道的更新通知,并为rss种子实现一个轻量级的发布订阅协议。

<cloud domain="rpc.sys.com" port="80" path="/RPC2" registerProcedure="pingMe" protocol="soap"/>

ttl

ttlTime to live的缩写。它指示cache的有效保存时间。

<ttl>60</ttl>

image

与频道一起显示的图片地址

rating

该频道的统计图片地址

textInput

指定一个textbox与该频道一起显示

skipHours

告诉使用者哪些时段是可以忽略的

skipDays

告诉使用着哪些天是可以忽略的

 

 

频道元素的具体说明

<channel>子节点<image>

<image>是一个可选的<channel>子节点,该节点包含三个必需的子元素和三个可选的子元素。

* <url>GIFJPEGPNG图像文件的URL地址,该图像代表整个频道

* <title>用于描述上面的图像,等同于HTML语言中的<img>alt属性

* <link>是要连接的站点的url,当显示频道时,图像的连接指向该站点。

<title><link>应该与频道的<title><link>有相同的值

可选的节点包括<width><height>,它们是数字类型,指定图像的宽度和高度,单位为像素<description>就是linkTITLE属性中文本,它将在调用网页时显示出来。图像宽度的最大值为144,默认值为88图像高度的最大值为400,默认值为31

 

<channel>子节点<cloud>

<cloud>是一个可选的<channel>子节点。它指定一个可以支持rssCloud接口的web服务,rssCloud接口可以用HTTP-POSTXML-RPCSOAP1.1实现。它的目的是允许通知注册为cloud的进程频道被更新,从而实现一个轻量级的发布订阅协议。

<cloud domain="rpc.sys.com" port="80" path="/RPC2" registerProcedure="myCloud.rssPleaseNotify" protocol="xml-rpc"/>

在这个例子中,为了请求频道通知,你需要发送一个XML-RPC消息到rpc.sys.com80端口,路径为/RPC2。调用的过程为myCloud.rssPleaseNotify

 

<channel>子节点<ttl>

<ttl>是一个可选的<channel>子节点。ttltime to live的缩写。它表示频道在被刷新前应该被缓存的时间。这使得rss源可以被一个支持文件共享的网络所管理,例如Gnutella
例如:<ttl>60</ttl>

 

<channel>子节点<textInput>

<textInput><channel>的可选的子节点,<textInput>包含四个子节点。

* <title>--提交按钮的标签

* <description>--该文本输入区的描述

* <name>--文本输入区的名称

* <link>--处理文本输入的CGI脚本的URL

使用<textInput>的目的有些神秘(?)。你可以用它提供一个搜索引擎输入框,或让读者提供反馈信息。许多聚合器忽略该节点。

 

 

<item>的节点

一个频道可以包含许多项目(item)节点。一个项目可以代表一个故事——比如说一份报纸或杂志上的故事,如果是这样的话,那么项目的描述则是故事的概要,项目的链接则指向整个故事的存放位置。项目的所有节点都是可选的,但是至少要包含至少一个标题(title)和描述(description)如下表所示:

节点

描述

范例

title

item的标题

Venice Film Festival Tries to Quit Sinking

link

itemURL

 http://www.nytimes.com/2002/09/07/movies/07FEST.html

description

item概要

Some of the most heated chatter at the Venice Film Festival this week was about the way that the arrival of the stars at the Palazzo del Cinema was being staged.

author

作者的email地址

oprah@oxygen.net

category

item可以包含在一个或多个分类中

Simpsons Characters

comments

item相关的评论的地址

http://www.myblog.org/cgi-local/mt/mt-comments.cgi?entry_id=290

enclosure

附加的媒体对象

抱歉!评论已关闭.