RSS (RDF Site Summary / Really Simple Syndication)

概要

RSSとは、Webサイトの見出しや要約などのメタデータを構造化して記述する、XMLベースのフォーマットです。RSSとは【RDF Site Summary】(Really Simple Syndication) - IT用語辞典 e-Words

RSSの種類

RSSには大別して2種類あり、これらに互換性はありません

系統 ベース 遷移
RSS 1.0系 RDF
  • RDF Site Summary 0.9
  • 1.0
RSS 2.0系 XML
  • Rich Site Summary 0.91
  • → 0.9x
  • → Really Simple Syndication 2.0

ファイル拡張子

ファイルの拡張子は、RSSの系統ごとに

  • RSS 1.0 … .rdfまたは.xml
  • RSS 2.0 … .rssまたは.xml

のように使用されてます。しかし拡張子にたいした意味はないので、これは好みのもので構いません。それよりも、MIMEタイプをapplication/rss+xmlと返すべきです。

RSSのサンプル

RSS 2.0

<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>チャンネル名</title> <!-- (必須) -->
    <link>http://example.com/</link> <!-- (必須) チャンネルに対応するWebサイトのURL -->
    <description>チャンネルの説明</description> <!-- (必須) -->

    <item>
      <title>記事1のタイトル</title>
      <link>http://example.com/item1.html</link> <!-- 記事のURL -->
      <description>記事1の説明</description>
    </item>
    <item>
      <title>記事2のタイトル</title>
    </item>
    <item>
      <description>記事3の説明</description>
    </item>
  </channel>
</rss>
RSS 2.0のサンプル

要素

channel要素
要素 説明 必須
title  
link チャンネルに対応するWebサイトのURL
description  
item   ×
item要素
要素 説明 必須
title   ×
link 記事のURL ×
description   ×

RSS 1.0

<?xml version="1.0"?>
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns="http://purl.org/rss/1.0/">

  <channel rdf:about="http://example.com/sample.rss">
    <title>チャンネル名</title> <!-- (必須) -->
    <link>http://example.com/</link> <!-- (必須) チャンネルに対応するWebサイトのURL -->
    <description>チャンネルの説明</description> <!-- (必須) -->
    <items> <!-- (必須) コンテンツのRDFテーブル -->
      <rdf:Seq>
        <rdf:li resource="http://example.com/item1.html" />
        <rdf:li resource="http://example.com/item2.html" />
        <rdf:li resource="http://example.com/item3.html" />
      </rdf:Seq>
    </items>
  </channel>

  <item rdf:about="http://example.com/item1.html">
    <title>記事1のタイトル</title> <!-- (必須) -->
    <link>http://example.com/item1.html</link> <!-- (必須) 記事のURL -->
    <description>記事1の説明</description>
  </item>
  <item rdf:about="http://example.com/item2.html">
    <title>記事2のタイトル</title>
    <link>http://example.com/item2.html</link>
  </item>
  <item rdf:about="http://example.com/item3.html">
    <title>記事2のタイトル</title>
    <link>http://example.com/item3.html</link>
  </item>
</rdf:RDF>
RSS 1.0のサンプル

要素

channel要素
要素 説明 必須
title  
link チャンネルに対応するWebサイトのURL
description  
items コンテンツのRDFテーブル
item要素
要素 説明 必須
title  
link 記事のURL
description   ×

RSSの解析

RSSはXMLを基本としているため、RSSの解析はXMLのそれと同じです。

PHPによる処理

PHPでは、XMLのパーサを使用することで簡単に処理できます。たとえばRSS 2.0を対象とするならば、次のようにすることでその内容を出力できます。

$rss = simplexml_load_file( $url );

echo $rss->channel->title; // チャンネルのタイトル

foreach( $rss->channel->item as $item )
{
    echo $item->title; // 項目のタイトル
}

参考

複数の技術系サイトから、まとめて検索