RSS语法简介

Apr 24, 2020
4分钟阅读时长

在搭建个人博客时,RSS是一种值得一试的为读者提供信息聚合的方式。RSS也被各类博客框架(如Hugo,Hexo,Jekyll等)所支持。在各类博客框架中,RSS文件一般可自动生成。然而仍有一些特定情况下我们需要对生成的RSS进行定制化,这时我们就需要对RSS的语法有一个简单的了解。

因此本篇文章的主要内容就是对RSS及其语法的简要介绍及使用中的注意事项。

RSS简介

RSS全称为Really Simple Syndication,是一种简单易用的为用户提供信息聚合方式的规范。RSS可以使用户通过RSS客户端接收文章更新等内容,用户可以在不打开网页的情况下收到文章推送,给用户带来更好的用户体验。

RSS语法简介

RSS的语法较为简单,基于XML 1.0,且应以.xml结尾。因为其基于XML的特点,RSS的语法要求也较为严格,需要较为严谨地遵守。

RSS语法示例

接下来以一个非常简单的RSS文件作为示例来进行分析。

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

<rss version="2.0">
<channel>
  <title>技术公馆</title>
  <link>https://wangchucheng.com</link>
  <description>技术公馆</description>

  <item>
    <title>Hello, World!</title>
    <link>https://www.wangchucheng.com/zh/post/hello-world/</link>
    <description>Hello, World!</description>
  </item>

  <item>
    <title>RSS语法简介</title>
    <link>https://www.wangchucheng.com/zh/rss-syntax</link>
    <description>本文的主要内容是对RSS及其语法的简要介绍及使用中的注意事项。</description>
  </item>
</channel>

</rss>

对熟悉XML语法规则的使用者来说,RSS的语法非常的简洁易懂。示例代码中的第一行是对XML的声明,声明其版本和编码方式。第二行则是对RSS的声明,声明其版本。

<channel>...</channel>中的是RSS具体的内容,可将该部分的示例代码分为三大部分。

<title>技术公馆</title>
<link>https://wangchucheng.com</link>
<description>技术公馆</description>

如上所示的第一部分为该RSS站点的基本信息,除此之外还有版权信息等内容也可添加到此部分,具体内容将会在后文中讲到。需要注意的是<title><link><description>三部分均为必须的。

<item>
  <title>RSS语法简介</title>
  <link>https://www.wangchucheng.com/zh/rss-syntax</link>
  <description>本文的主要内容是对RSS及其语法的简要介绍及使用中的注意事项。</description>
</item>

除RSS站点的基本信息之外,以上的即为RSS中的一篇文章的基本格式。每一个<item>中为一篇文章的内容,一般包含标题,链接,描述等部分。除<item>外,还有<image>等,具体内容也将在后文中提到。

RSS语法列举

除上述示例中的基本语法外,RSS还支持许多其他的语法,以下为部分常见语法的列举。

RSS站点信息

<title><link><description>三部分必须的站点信息外,RSS文件中还有以下属性。

<language>...</language>
<rating>...</rating>
<copyright>...</copyright>
    
<pubDate>...</pubDate>
<lastBuildDate>...</lastBuildDate>
<generator>....</generator>
   
<docs>...</docs>
<cloud>...</cloud>
<ttl>...</ttl>
  
<managingEditor>...</managingEditor>
<webMaster>...</webMaster>

由于此部分较于简单,因此采取表格的方式对其进行解释。

代码块含义
<language>...</language>网站语言
<rating>...</rating>PICS评级
<copyright>...</copyright>版权声明
<pubDate>...</pubDate>发布日期
<lastBuildDate>...</lastBuildDate>最后修改日期
<generator>....</generator>生成者
<docs>...</docs>RSS文档地址
<cloud>...</cloud>订阅服务器地址
<ttl>...</ttl>存活时间
<managingEditor>...</managingEditor>作者联系方式
<webMaster>...</webMaster>管理员联系方式

RSS忽略更新设置

<skipHours>
  <hour>...</hour>
</skipHours>

<skipDays>
  <day>...</day>
</skipDays>

以上为表示为网站在那一个时间段不会进行更新,<skipHours>中应使用GMT时间。<skipDays>中应为周一至周日中的一个或多个值。

RSS图片内容

<image>
  <title>...</title>
  <url>...</url>
  <link>...</link>

  <width>...</width>
  <height>...</height>
  <description>...</description>
</image>

以上代码为内容是图片时的相关设置。需要注意的是,<title><url>的值是必须的,其余为可选的。

RSS文章内容

<item>
  <title>...</title>
  <link>...</link>
  <description>...</description>

  <author>....</author>
  <category>....</category>
  <comments>....</comments>

  <enclosure ..../>
  <guid>....</guid>
  <pubDate>....</pubDate>

  <source>....</source>
</item>

以上代码为内容是文章时的相关设置。<item>中的值均为可选的。

RSS文本框

<textInput>
  <title>...</title>
  <description>...</description>
  <name>...</name>
       
  <link>...</link>
</textInput>

以上代码为文本框的相关设置。需要注意的是,<textInput>中的所有值都是必须的。

RSS使用中的注意事项

RSS有着可以为用户提供一种简单便捷的信息聚合方式的优点,因此在很多以内容为基础的平台(博客,新闻等)得到了广泛的应用。但同时需要注意的是,由于其形式上的特点,RSS的内容也很容易被爬虫所爬取,进而产生文章被盗用等版权上的问题。

因此在使用中,用户需要综合考量RSS的使用方式,选择最适合自己的方式加以利用。

本文首发于我的个人博客技术公馆(wangchucheng.com)
原文链接:https://wangchucheng.com/zh/posts/rss-syntax/
本博客内文章除特别声明外均为原创,采用CC BY-NC-SA 4.0 许可协议进行许可。超出CC BY-NC-SA 4.0 许可协议的使用请联系作者获得授权。

Avatar
C. Wang 说学逗唱样样不精的地道天津人。