原创 编写RSS文件之心得收藏

新一篇: 学习VML笔记 | 旧一篇: 用javascript将数据导入Excel

1.   软件环境

a)     文本编辑器

使用记事本或者EditPlus或者UltraEdit都可以。

b)    RSS阅读器

在网上有很多种RSS阅读器,这里以“周博通RSS阅读器”为例。

c)     虚拟服务器

IIS或者Apache都可以。

2.   概述

RSS文件实际上就是一个标准的、按着一定格式编写(具体编写格式将在下面详细讲解)的XML文件,当然它的扩展名可以是.xml也可以是其他的,如.php.asp.aspx.rss,不管这个文件用何种扩展名命名,其文件内的代码都是标准的xml代码,否则RSS阅读器将无法解释它。

3.   代码格式

a)     代码样例

<?xml version="1.0" encoding="gb2312" ?>

    <rss version="2.0">

          <channel>

               <title>Joe Zhong's First RSS.xml file</title>

               <link>http://localhost/</link>

               <description>我写的第一个RSS文件暗暗啊</description>

               <language>zh-cn</language>

               <generator>Joe Zhong</generator>

               <pubDate>2005-8-31</pubDate>

               <lastBuildDate>2005-8-31</lastBuildDate>

 

               <item>

                     <title>泡泡堂、QQ堂游戏通信架构分析</title>

                     <link>http://www.163.com/aaa.htm</link>

                     <category>IT技术</category>

                     <author>Zhongzhi</author>

                     <pubDate>Wed, 31 Aug 2005 00:26:00 GMT</pubDate>

                     <description>能帮助企业降低网络资产管理管理成本。它将对网络中每台工作站的软、硬件信息进行搜集整理,以便企业管理者使用。</description>

                     <comments>介绍这两款游戏的通信机制,不足之处还望大家指点!</comments>

               </item>

          </channel>

    </rss>

b)    首行代码

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

作用:声明xml语言的版本和所使用的语言字符集。字符集建议使用utf-8,不过有的服务器在解释utf-8格式的xml时会报错,如果报错的话,就使用简体中文字符集gb2312

c)     第二行代码

<rss version="2.0">

作用:声明rss语言的版本。

d)    RSS新闻列表代码

每条新闻对应一个item,所有的item都要包含在channel节点下。Xml各节点的详细说明如下:


 

<!-- RSS.XML -->

<!-- XML版本和字符集 -->

<?xml version="1.0" encoding="gb2312" ?>

    <!-- RSS版本 -->

    <rss version="2.0">

        <!-- 以下为频道信息及新闻列表 -->

        <channel>

            <!-- 频道总体信息:开始 -->

            <!-- 频道标题 -->

            <title>Joe Zhong's First RSS.xml file</title>

            <!-- 频道链接的总地址 -->

            <link>http://localhost/</link>

            <!-- 频道描述文字 -->

            <description>我写的第一个RSS文件暗暗啊</description>

            <!-- 频道使用的语言(zh-cn表示简体中文) -->

            <language>zh-cn</language>

            <!-- 频道生成器 -->

            <generator>Joe Zhong</generator>

            <!-- 频道发布时间 -->

            <pubDate>2005-8-31</pubDate>

            <!-- 频道最后更新时间-->

            <lastBuildDate>2005-8-31</lastBuildDate>

            <!-- 频道总体信息:结束 -->

 

            <!-- 每条RSS新闻信息都包含在item节点中, -->

            <item>

                <!-- 新闻标题 -->

                <title>泡泡堂、QQ堂游戏通信架构分析</title>

                <!-- 新闻链接地址 -->

                <link>http://www.163.com/aaa.htm</link>

                <!-- 新闻目录 -->

                <category>IT技术</category>

                <!-- 新闻作者 -->

                <author>Zhongzhi</author>

                <!-- 新闻发布时间 -->

                <pubDate>2005 00:26:00</pubDate>

                <!-- 新闻内容简要描述 -->

                <description>能帮助企业降低网络资产管理管理成本。它将对网络中每台工作站的软、硬件信息进行搜集整理,以便企业管理者使用。</description>

                <!-- 新闻注释[作用不详] -->

                <comments>介绍这两款游戏的通信机制,不足之处还望大家指点!</comments>

            </item>

 

            <item>

                <title>持续集成工具CruiseControl 2.3新版发布</title>

                <link>http://news.csdn.net/news/newstopic/25/25811.shtml</link>

                <category>风花雪月</category>

                <author>张三</author>

                <pubDate>2005-8-31 12:30:00</pubDate>

                <description>持续集成工具CruiseControl今日宣布发行新版本2.3</description>

                <comments>注释显示在哪里?</comments>

            </item>

 

        </channel>

    </rss>

4.   解析RSS文件

a)         RSS.XML放到虚拟目录中,如http://localhost/RSS.XML

b)        RSS阅读器中添加新的RSS频道。添加过程中会要求输入RSS频道地址和频道名称。

c)        频道添加成功后,可以在RSS频道树中看到刚添加的频道,刷新频道内容,能浏览到我们在XML文件中编写好的两条RSS新闻。

5.   使用服务器端脚本输出RSS文件

输出方式和静态的XML文件大致一样,不同的是,用服务器脚本输出RSS文件时,需要指定文件输出的方式为XML格式,即设置文件的MIME类型。具体指定方式如下:

a)     ASP

在输出文件的第一行加上如下代码:

Response.ContentType = "text/xml"

Response.CharSet = "gb2312"

b)    PHP

在输出文件的第一行加上如下代码:

header("Content-type: text/xml;charset=gb2312");


RSS 2.0规范
版权所有 codesky.net 2003-2005

发表时间:2005-6-3    关键字:不详

RSS 2.0规范

RSS Really Simple Syndication的缩写(对rss2.0而言,是这三个词的缩写,对rss1.0而言则是RDF Site Summary的缩写,1.02.0走的是两个体系)
  RSS 基于XML,所有的 RSS 必须遵循w3c网站上公布的XML 1.0 规范。
  在一个RSS文档中,根元素是<rss>,带有一个必备属性version,用以指明该文档遵循的rss规范,如果rss文档遵循本规范,则version值必须是2.0
  <rss>元素只有一个子元素,包含关于频道的一些信息。频道(channel)是整个blog,项(item)指一篇文章或日志(也有称这为post)

RSS2.0元素channel的子元素列表

 

元素(Element)

描述(Description)

值域

重要性

举例(Example)

title

频道名称

 

必备

GoUpstate.com News Headlines

link

频道的URL

 

必备

http://www.goupstate.com/

Description

频道的描述

 

必备

The latest news from GoUpstate.com, a Spartanburg Herald-Journal Web site.

 

 

 

 

 

language

频道文章所用语言,

可用netscapew3c推荐的列表

可选

en-us

copyright

频道内容的版权说明

 

可选

Copyright 2002, Spartanburg Herald-Journal

managingEditor

责任编辑的email

 

可选

geo@herald.com (George Matesky)

webMaster

负责频道技术事务的网站管理员email

 

可选

betty@herald.com (Betty Guernsey)

pubDate

频道内容发布日期,格式遵循RFC822格式(年份可为2们或4位)

 

可选

Sat, 07 Sep 2002 00:00:01 GMT

lastBuildDate

频道内容最后的修改日期

 

可选

Sat, 07 Sep 2002 09:42:31 GMT

category

指定频道所属的一个或几个类别

 

可选

<category>Newspapers</category>

generator

生成该频道的程序名

 

可选

MightyInHouse Content System v2.3

docs

指向该RSS文件所用格式说明的URL

 

可选

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

cloud

Allows processes to register with a cloud to be notified of updates to the channel, implementing a lightweight publish-subscribe protocol for RSS feeds. More info here.

 

可选

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

ttl

有效期,用以指明该频道可被缓存的最长时间

分钟为单位

可选

<ttl>60</ttl>

image

指定一个 GIFJPEGPNG图片,用以与频道一起显示