`
duguyidao
  • 浏览: 138464 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
文章分类
社区版块
存档分类
最新评论
阅读更多
学习RSS2.0规范



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





什么是RSS?



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

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

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

内容信息使用< item>节点表示,< item>的子节点有title、link、author、pubDate、description。

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

channel:在RSS标签下,必须有且只能有一个channel标签

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

title:日志的标题

link:日志的URL访问地址

author:日志的作者

pubDate:日志的发布日期

description:日志的内容





必需的频道节点

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

[/img]
可选的频道元素

下面是可选的频道元素列表
[img][/color]

[/img]
频道元素的具体说明

<channel>子节点<image>

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

* <url>是GIF、JPEG或PNG图像文件的URL地址,该图像代表整个频道

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

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

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

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



<channel>子节点<cloud>

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

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

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



<channel>子节点<ttl>

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



<channel>子节点<textInput>

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

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

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

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

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

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





<item>的节点

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

[/img]

Item元素的具体说明

<item>子节点<source>

<source>是<item>的可选节点。它的值是item来自的rss频道的名称,从item的title衍生而来。它有一个必须包含的属性url,该属性链接到XML序列化源。格式如下所示:

<source url="http://static.userland.com/tomalak/links2.xml">Tomalak's Realm</source>

该节点的作用是提高连接的声望,进一步推广新闻项目的源头。它可以用在聚合器的Post命令中。当从聚合器通过webblog访问一个item时,<source>能够自动被生成。



<item>子节点<enclosure>

<enclosure>是<item>的可选节点。它有三个必要的属性。url属性指示enclosure的位置,length指出它的字节大小,type属性指出它的标准MIME类型。url必须为一个http url。

<enclosure url=http://www.scripting.com/mp3s/weatherReportSuite.mp3 length="12216320" type="audio/mpeg" />



<item>子节点<category>

<category>是<item>的可选节点。它有一个可选属性或域,该属性是一个用来定义分类法的字符串。该节点的值是一个正斜杠分割的字符串,它用来在指定的分类法中识别一个分级位置(hierarchic location)。处理器可以为分类的识别建立会话。(Processors may establish conventions for the interpretation of categories)下面有两个例子:

<category>Grateful Dead</category>

<category domain="http://www.fool.com/cusips">MSFT</category>

你可以根据你的需要为不同的域(domain)包含很多category节点,并且可以在相同域的不同部分拥有一个前后参照的item。



<item>子节点<pubDate>

<pubDate>是<item>的可选节点。它的值是item发布的日期。如果它是一个没有到达的日期,聚合器在日期到达之前可以选择不显示该item。例子如下所示:

<pubDate>Sun, 19 May 2002 15:21:36 GMT</pubDate>



<item>子节点<guid>

<guid>是<item>的可选节点。guid是globally unique identifier的缩写。它是一个可以唯一识别item的字符串。当item发布之后,聚合器可以选择使用该字符串判断该item是否是新的。

<guid>http://some.server.com/weblogItem3207</guid>

guid没有特定的语法规则,聚合器必须将他们看作一个字符串。生成具有唯一性的字符串guid取决于种子的源头。

如果guid节点有isPermaLink属性,并且值为真,读取器就会认为它是item的permalink。permalink是一个可在web浏览器中打开的url链接,它指向<item>节点所描述的全部item。

<guid isPermaLink="true">http://inessential.com/2002/09/01.php#a2</guid>

isPermaLink是可选属性,默认值为真。如果值为假,guid将不会被认为是一个url或指向任何对象的url。



<item>子节点<comment>

<comment>是<item>的可选节点。如果出现,它指向该item评论的url。

<comments>http://rateyourmusic.com/yaccs/commentsn/blogId=705245&amp;itemId=271</comments>



<item>子节点<author>

<author>是<item>的可选节点。它是item的作者的email。对于通过rss传播的报纸和杂志,作者可能是写该item所描述的文章的人。对于聚集型webblogs,作者可能不是责任编辑或站长。对于个人维护的webblog,忽略<author>节点是有意义的。

<author>lawyer@boyer.net (Lawyer Boyer)</author>





具体应用

<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" xmlns:wfw="http://wellformedweb.org/CommentAPI/">

<channel>

<title>标题></title>

<link>链接地址</link>

<description>描述</description>

<language>描述语言</language>

<copyright>版本</copyright>

<pubDate>21 Oct 2008 01:43:15 GMT</pubDate>

< item>

<title>日志的标题</title>

<link>日志的URL访问地址</link>

<author>日志的作者</author>

<pubDate>日志的发布日期</pubDate>

<description>日志的内容</description>

</item>

</channel>

</rss>





发展方向

RSS 决不是一个完美的格式,但是它现在已经非常流行,并得到广泛的支持。要成为一个固定的规范,RSS需要很长的一段时间。这项工作的目的是帮助RSS成为一个固定的事情,同时促进和培育围绕它进行的开发的市场的增长,并为新的聚合格式铺平道路。因此,为了实用的目的,RSS规范将被冻结在2.0.2版本。我们可以预期的可能的2.0.2 或者 2.0.3等版本,都只是出于澄清规范的目的,而不是在格式上增加新的特征。后续的工作应该集中在模块化、名字空间的使用和在完全新的聚合格式中用新的名字等方面。
  • 大小: 47.7 KB
  • 大小: 77.7 KB
  • 大小: 22.1 KB
分享到:
评论

相关推荐

    RSS2.0规范

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

    RSS2.0规范及样例

    - **RSS2.0规范.doc**:这应该是RSS2.0规范的详细文档,包含了RSS2.0的所有定义、语法和使用指南。通过阅读这个文档,可以深入理解RSS2.0的结构、语义以及如何创建符合规范的RSS feed。 - **RSS0.92样例.xml**:RSS...

    RSS 2.0规范

    ### RSS 2.0规范详解 #### 一、RSS概览 RSS,全称为Really Simple Syndication,是一种互联网上的内容和元数据格式,主要用于聚合来自不同来源的信息,如新闻、博客和其他更新。RSS的设计旨在简化内容分发和聚合,...

    RSS2.0 规范

    RSS2.0 规范RSS is a Web content syndication format. &lt;br&gt;Its name is an acronym for Really Simple Syndication. &lt;br&gt;RSS is a dialect of XML. All RSS files must conform to the XML 1.0 specification...

    php Rss 2.0 生成类

    4. **生成XML**:一个生成XML的方法,它将所有设置的信息转换为符合RSS 2.0规范的XML字符串。 5. **输出或保存**:最后,类可能提供一个方法来直接输出XML,或者将XML保存到文件。 在使用这个类时,开发者需要注意...

    RSS 2.0 规范.rtf

    什么是 RSS? RSS 是一种站点内容聚合的格式。它的名字是Really Simple Syndication 的的简写。 RSS是XML的一种。所有的RSS文档都遵循 XML 1.0规范, 该规范发布在W3C网站上。

    simple-rss-2.0.zip

    通过"simple-rss-2.0.zip"中的示例,开发者可以学习如何根据RSS 2.0规范创建和解析XML文件,以及如何在Java环境中实现RSS阅读器的核心功能。理解并掌握这些知识,有助于提升开发者在Web开发领域的综合能力,特别是在...

    生成 Rss 2.0 的ASP类

    3. **生成XML**:类的核心功能是将所有数据转换为符合RSS 2.0规范的XML字符串。这通常涉及创建XML元素,如`&lt;rss&gt;`, `&lt;channel&gt;`, `&lt;item&gt;`,并正确地嵌套它们。 4. **头信息处理**:XML文档需要正确的MIME类型...

    RSS 2.0 标准

    RSS 2.0 标准是 RSS 的一个版本,发布于 2002 年秋天,该版本包含从 RSS 0.91 规范(2000 年)开始的任何修改和添加,连同包含在 RSS 0.92(2000 年 12 月)和 RSS 0.94(2002 年 8 月)中的新的特性。 在 RSS 2.0 ...

    RSS 2.0 Spec

    RSS 2.0 规范。

    jQuery插件解析RSS20规范它是基于jFeed

    **jQuery插件解析RSS2.0规范:基于jFeed** RSS(Really Simple Syndication)是一种用于发布和聚合网络内容的XML格式,版本2.0是其最广泛采用的标准。RSS2.0规范允许网站创建可订阅的新闻源,使得用户可以通过RSS...

    RSS 2.0 概述

    RSS 是一种 XML 方言,用于连锁 Web 内容和元数据。RSS 0.91 是几种可用版本中最常用的一种。对于新的 RSS 提要,更好的办法是使用 2.0 版,因为这是现行的规范,而且如前所述,它与 0.91 向后兼容。

    rss.rar_RSS_RSS PHP

    在描述中提到,“RSS2.0生成类”是指这个项目提供了一个PHP类,能够帮助开发者创建符合RSS 2.0规范的XML结构。RSS 2.0是RSS的一个版本,包含了元数据元素,如标题、描述、链接等,用于描述一个内容源的条目。这个...

    Go-GoLang一个RSS2.0和iTunes播客生成器

    二、RSS2.0和iTunes播客规范 1. RSS2.0:RSS2.0是一种XML格式,用于发布新闻、博客和其他经常更新的网站内容。它包含频道信息(如标题、描述和链接)以及一系列条目(每条条目代表一个单独的更新)。RSS2.0还支持...

    DoiceRSS(典石知讯)V3.7.1.2免费安装版

    典石知讯是一款RSS新闻聚合的阅读软件,你可以通过这款软件,自动获取各大... 2、生成RSS2.0规范的RSS; 3、提供后台异步定时刷新RSS频道内容; 4、提供后台异步取或存本地缓存; 5、接收的最新新闻资讯使用新闻资讯提

    rss-2.0-generation-class:RSS 2.0 生成类

    RSS 2.0 生成类是专门为创建和管理符合RSS 2.0规范的XML feed而设计的一个PHP类库。RSS(Really Simple Syndication)是一种常见的数据格式,用于发布经常更新的内容,如博客文章、新闻或播客。通过使用这个类,...

    RSS代码RSS 代码RSS 代码RSS 代码

    除了基本的RSS 2.0规范,还有许多扩展如iTunes RSS扩展用于播客,Atom Feed作为另一种内容聚合格式,以及Media RSS(MRSS)用于多媒体内容。 9. **兼容性和验证** 使用在线工具如FeedValidator对RSS Feed进行验证...

    典石知讯(DoiceRSS) 3.7.2.0.zip

    2、生成RSS2.0规范的RSS; 3、提供后台异步定时刷新RSS频道内容; 4、提供后台异步取或存本地缓存; 5、接收的最新新闻资讯使用新闻资讯提示方式,提醒用户阅读; 6、使用内嵌的IE浏览器浏览和阅读新闻资讯...

    .net RssFeed制作实例下载

    3. 构建XML结构:使用XmlWriter类,按照RSS 2.0规范构造XML结构。例如,创建频道后,添加条目,每个条目对应一个网站文章。 三、实例代码解析 1. 文件RssTool.aspx.cs和Default.aspx.cs:这两个文件可能包含了处理...

Global site tag (gtag.js) - Google Analytics