RSS是一種消息來源格式規范,用以發布經常更新資料的網站,例如博客、新聞的網摘。RSS文件,又稱做摘要、網摘、更新、頻道等,包含了全文或節選文字,再加上一定的屬性數據。RSS讓發布者自動發布信息,也使讀者能夠聚合和定期更新不同網站的網摘。RSS可以通過以網頁或桌面為架構的軟件來閱讀,即RSS閱讀器、新聞聚合器等,并進行定期更新檢查、自動下載。
RSS可以是以下三種解釋中任一種的縮寫,
- Really Simple Syndication
- RDF (Resource Description Framework) Site Summary
- Rich Site Summary
RSS規范的主要版本有0.91、1.0和2.0等。
- 1.0版和0.91版內容不同、風格不同、制定標準的人也不同,稱為RDF分支;
- 2.0版和0.91版一脈相承,稱為2.*分支。
早期版本的RSS閱讀器不支持RDF分支,而當前主流的RSS閱讀器都同時兼容兩種分支。
RSS 2.*規范由美國人Dave Winer個人進行維護,在全球大部分網站得到使用。可能是版權方面的原因,RSS 2.*規范并沒有在W3C、IETF或者ISO等國際標準化組織發布,而是在RSS Advisory Board發布。
RSS 2.0規范說明

本規范是RSS 2.0規范的2.0.10版本,2007-10-15在RSS Advisory Board發布,波波坡原創翻譯。點擊這個鏈接可以獲得RSS的最新版本的英語規范。
RSS是一個Xml格式的數據或文件,根節點是一個帶有版本號的<rss>節點,根節點一下是一個單一的<channel>節點極其子節點。對于具體的Rss訂閱項目,例如一篇文章、網志,由<channel>節點下多個<item>節點來表示。一個<channel>可以有任意多個<item>。
<channel>
必須的子節點:
項目 | 說明 | 舉例 |
---|---|---|
<title> | 頻道名稱。 | 程序員的波波坡。 |
<link> | 與頻道關聯的Web站點或者站點區域的Url。 | http://www.bobopo.com |
<description> | 簡要介紹該頻道是做什么的。 | 包含編程、休閑、知識、雜記的程序員站點。 |
可選的子節點:
項目 | 說明 | 舉例 |
---|---|---|
<language> | 頻道內容使用的語言。詳見常用HTML、RSS語言代碼列表。 | zh-cn |
<copyright> | 頻道內容的版權說明。 | Copyright 2008,2009 bobopo.com |
<managingEditor> | 責任編輯的Email地址。 | rosbicn@hotmail.com |
<webMaster> | 頻道相關網站管理員的Email地址。 | rosbicn@hotmail.com |
<pubDate> | 頻道內容發布日期。遵循RFC 822。 | Wed, 04 Mar 2009 00:00:01 GMT |
<lastBuildDate> | 頻道內容最后的修改日期。遵循RFC 822。 | Wed, 04 Mar 2009 09:42:31 GMT |
<category> | 頻道所屬的一個或幾個類別。詳見后文。 | Html |
<generator> | 生成該頻道的程序名字符串。 | Bobopo Site Generator 2009 |
<docs> | 解釋當前RSS文件的文檔的Url。(給不知道啥是RSS的某人看:) | http://www.bobopo.com/code/rss.htm |
<cloud> | 允許進程注冊為“cloud”,頻道更新時通知它,為 RSS 提要實現了一種輕量級的發布-訂閱協議。詳見后文。 | 詳見后文。 |
<ttl> | 內容有效期,一個數字,指明該頻道可被緩存的最長分鐘數。 | 60 |
<image> | 指定一個 GIF或JPEG或PNG圖片,用以與頻道一起顯示。詳見后文。 | 詳見后文。 |
<rating> | 內容分級,主要指成人、限制、兒童等,多數情況不用,如果要用參見PICS。 | |
<textInput> | 定義可與頻道一起顯示的輸入框。多數情況不用。詳見后文。 | |
<skipHours> | 提示新聞聚合器,哪些小時時段它可以跳過。可包含最多24個<hour>子節點,它的值是0~23中的一個數字。 | <hour>2</hour> <hour>3</hour> |
<skipDays> | 提示新聞聚合器,那些天它可以跳過。可包含最多7個<day>子節點,它的值是Monday、Tuesday、Wednesday、Thursday、Friday、Saturday或Sunday之一。 | <day>Saturday</day> <day>Sunday</day> |
<item>
<item>的任何一個子節點都是可選的,但是<title>和<description>至少要被包含一個。
項目 | 說明 | 舉例 |
---|---|---|
<title> | 項目的名稱。 | RSS簡介。 |
<link> | 項目的Url。 | http://www.bobopo.com/article/rss.htm |
<description> | 項目的摘要。 | RSS(簡易資訊聚合)是一種消息來源格式規范,用以發布經常更新資料的網站,例如部落格文章、新聞、音訊或視訊的網摘。RSS文件(或稱做摘要、網絡摘要、或頻更新,提供到能道)包含了全文或是節錄的文字,…… |
<author> | 作者的Email地址。通常忽略。 | rosbicn@hotmail.com |
<category> | 頻道所屬的一個或幾個類別。詳見后文。 | Html |
<comments> | 與此項目相關的評論的Url。 | http://www.bobopo.com/comments/rss.htm |
<enclosure> | 此項目相關的多媒體附件。屬性url表示附件網址,屬性length表示附件字節數,屬性type表示附件的MIME類型。 | <enclosure url="http://www.bobopo.com/video/rss.mp3" length="16131450" type="audio/mpeg" /> |
<guid> | 項目的唯一識別碼。詳見后文。 | http://www.bobopo.com/article/rss.htm |
<pubDate> | 項目的發布日期。遵循RFC 822。 | Wed, 04 Mar 2009 00:00:01 GMT |
<source> | 項目來源于哪個Rss頻道。如果一個Rss是從其他Rss轉貼過來,可以用這個。必須包含屬性url,指向另外一個rss。 | <source url="http://www.blabla.cn/rss.xml">Blabla</source> |
<item>中支持Html格式的<description>
<item>的子節點<description>可以只包含項目的摘要,也可以是項目全文。它的值是Text類型,或者是一個實體編碼的HTML類型(entity-encoded HTML)。所謂實體編碼的HTML類型,指的是HTML的保留字(實體)都進行了編碼處理。舉例如下:
示例1:對HTML標記進行編碼。
<description>this is <b>bold</b></description>
結果:this is bold
示例2:HTML標記放在CDATA段中編碼。
<description><![CDATA[this is <b>bold</b>]]></description>
結果:this is bold
示例3:對尖括號進行編碼
<description>5 &lt; 8, ticker symbol&lt;BIGCO&gt;</description>
結果:5 < 8, ticker symbol <BIGCO>
示例4:尖括號放在CDATA段中編碼。
<description><![CDATA[5 < 8, ticker symbol <BIGCO>]]></description>
結果:5 < 8, ticker symbol <BIGCO>
<category>
<category>是<channel>的可選子節點,也是<item>的可選子節點,用來表示頻道或者內容的類別。一個節點表示一個類別,如果是多個類別,可以用多個<category>節點來表示。如果該類別有專門的Url表示,可以用屬性domain來表示。
示例如下,
<category>編程</category>
<category domain="http://www.bobopo.com/html/">Html</category>
<category>有點類似很多網站中的標簽(Tag)。
<guid>
guid是全球唯一識別碼的意思,用來唯一確定Rss項目的字符串。現在,一個新聞聚合器往往用這個字符串來判斷某個項目是不是新的。
guid并沒有什么語法上面的規定,新聞聚合器肯定把它視作字符串。建立這個字符串的唯一性取決于項目的內容。往往用項目相關的Url來做guid。
如果<guid>包含屬性isPermaLink,并且屬性值是true,新聞聚合器會把<guid>的值當做當前項目的永久連接,也就是能夠在瀏覽器中打開,連接到項目全文的Url。isPermaLink是可選屬性,缺省值是true,也就是說,如果包含了isPermaLink,只有明確寫明值是false,才表示<guid>的值不是Url。
<guid isPermaLink="true">http://www.bobopo.com/article/rss.htm</guid>
<cloud>
這個東西主要是給HTTP-POST、XML-RPC或者SOAP 1.1這類的Web Service用的。如果真的要用,請看這里。
項目 | 說明 | 舉例 |
---|---|---|
<domain> | 必須。cloud程序所在機器的域名或IP地址。 | rpc.bobopo.com |
<port> | 必須。訪問cloud程序所通過的端口。 | 80 |
<path> | 必須。程序所在路徑,不一定需要是真實路徑。 | /RPC2 |
<registerProcedure> | 必須。 注冊的可提供的服務或過程。 | cloud.rss |
<protocol> | 必須。協議,http-post、xml-rpc、soap之一。 | xml-rpc |
示例如下,
<cloud domain="rpc.bobopo.com" port="80" path="/RPC2" registerProcedure="cloud.rss" protocol="xml-rpc" />
<image>
項目 | 說明 | 舉例 |
---|---|---|
<url> | 必須。表示該頻道的Gif、Jpeg或Png圖像的Url。 | http://www.bobopo.com/style/images/bobopo.gif |
<title> | 必須。圖象描述。當頻道以Html呈現時用作<img>標簽的alt屬性。 | 程序員的波波坡。 |
<link> | 必須。站點Url,當頻道以Html呈現時,該圖像會鏈接到此。 | http://www.bobopo.com |
<width> | 可選。 數字,圖象的像素寬度,最大值144,默認值為88。 | 120 |
<height> | 可選。 數字,圖象的像素高度,最大值400,默認值為31。 | 120 |
<description> | 可選。 當頻道以Html呈現時,作為圍繞著該圖像形成的鏈接Tag的title屬性。 | 包含編程、休閑、知識、雜記的程序員站點。 |
上述<title>和<link>多數情況下會與<channal>的<title>和<link>相同。
<textInput>
用戶可以用<textInput>讓讀者進行一次搜索引擎的搜索,或者提交一個反饋。不過大多數情況都是忽略這個東西。
項目 | 說明 |
---|---|
<title> | 必須。輸入框中Submit按鈕上的文字。 |
<description> | 必須。輸入框的解釋。 |
<name> | 必須。輸入框對象的名字。 |
<link> | 可選。 輸入框提交的Url。 |
RSS 2.0代碼示<?xml version="1.0"?><rss version="2.0">
<channel>
<title>Liftoff News</title>
<link>http://liftoff.msfc.nasa.gov/</link>
<description>Liftoff to Space Exploration.</description>
<language>en-us</language>
<pubDate>Tue, 10 Jun 2003 04:00:00 GMT</pubDate>
<lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<generator>Weblog Editor 2.0</generator>
<managingEditor>editor@example.com</managingEditor>
<webMaster>webmaster@example.com</webMaster>
<item>
<title>Star City</title>
<link>http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp</link>
<description>How do Americans get ready to work with Russians aboard the International Space Station? They take a crash course in culture, language and protocol at Russia's <a href="http://howe.iki.rssi.ru/GCTC/gctc_e.htm">Star City</a>.</description>
<pubDate>Tue, 03 Jun 2003 09:39:21 GMT</pubDate>
<guid>http://liftoff.msfc.nasa.gov/2003/06/03.html#item573</guid>
</item>
<item>
<description>Sky watchers in Europe, Asia, and parts of Alaska and Canada will experience a <a href="http://science.nasa.gov/headlines/y2003/30may_solareclipse.htm">partial eclipse of the Sun</a> on Saturday, May 31st.</description>
<pubDate>Fri, 30 May 2003 11:06:42 GMT</pubDate>
<guid>http://liftoff.msfc.nasa.gov/2003/05/30.html#item572</guid>
</item>
<item>
<title>The Engine That Does More</title>
<link>http://liftoff.msfc.nasa.gov/news/2003/news-VASIMR.asp</link>
<description>Before man travels to Mars, NASA hopes to design new engines that will let us fly through the Solar System more quickly. The proposed VASIMR engine would do that.</description>
<pubDate>Tue, 27 May 2003 08:37:32 GMT</pubDate>
<guid>http://liftoff.msfc.nasa.gov/2003/05/27.html#item571</guid>
</item>
<item>
<title>Astronauts' Dirty Laundry</title>
<link>http://liftoff.msfc.nasa.gov/news/2003/news-laundry.asp</link>
<description>Compared to earlier spacecraft, the International Space Station has many luxuries, but laundry facilities are not one of them. Instead, astronauts have other options.</description>
<pubDate>Tue, 20 May 2003 08:56:02 GMT</pubDate>
<guid>http://liftoff.msfc.nasa.gov/2003/05/20.html#item570</guid>
</item>
</channel>
</rss>
我的另一篇博文有講怎么用C# 3.5、4.0來生成和解析rss 詳見:用C#實現RSS的生成和解析,支持RSS2.0和Atom格式
文章列表