1 <?xml version="1.0" encoding="UTF-8"?>
3 <!-- EN-Revision: 20774 -->
4 <sect1 id="zend.feed.consuming-rss">
5 <title>RSS フィードの使用</title>
7 <acronym>RSS</acronym> フィードの読み込みは、フィードの <acronym>URL</acronym> を指定して
8 <classname>Zend_Feed_Rss</classname> のインスタンスを作成するのと同じくらい簡単です。
10 <programlisting language="php"><![CDATA[
11 $channel = new Zend_Feed_Rss('http://rss.example.com/channelName');
15 <classname>Zend_Feed_Exception</classname> がスローされます。
19 フィードオブジェクトを取得すると、標準的な <acronym>RSS</acronym> の "channel"
20 プロパティに対して直接アクセスできるようになります。
22 <programlisting language="php"><![CDATA[
23 echo $channel->title();
26 関数の構文に注意しましょう。"getter" 方式の構文 (<code>$obj->property</code>)
27 をした場合は、<classname>Zend_Feed</classname> はプロパティを <acronym>XML</acronym> オブジェクトとして扱います。
28 一方、メソッドの構文 (<code>$obj->property()</code>)
30 これにより、特定のノードを取得したあとで、さらにその子要素にもアクセスできるようになります。
34 チャネルのプロパティが属性を保持している場合、<acronym>PHP</acronym>
35 の配列構文を使用してそれらにアクセスできます。
37 <programlisting language="php"><![CDATA[
38 echo $channel->category['domain'];
41 <acronym>XML</acronym> の属性は子を持つことができないので、
42 属性値へアクセスする際にメソッド構文を使用する必要はありません。
46 たいていの場合は、フィードをループさせたうえで、
47 個々のエントリに対して何かをすることになるでしょう。
48 <classname>Zend_Feed_Abstract</classname> は <acronym>PHP</acronym> の <code>Iterator</code>
50 例えばチャネル内の全記事のタイトルを表示するには単にこのようにするだけです。
52 <programlisting language="php"><![CDATA[<?php
53 foreach ($channel as $item) {
54 echo $item->title() . "\n";
58 <acronym>RSS</acronym> にあまり詳しくない方のために、<acronym>RSS</acronym> チャネルおよび個々の <acronym>RSS</acronym>
59 アイテム (エントリ) で利用できる標準的な要素をまとめます。
69 <para><code>title</code> - チャネルの名前</para>
72 <para><code>link</code> - チャネルに対応するウェブサイトの <acronym>URL</acronym></para>
75 <para><code>description</code> - チャネルについての説明</para>
87 <para><code>pubDate</code> -
88 コンテンツの発行日を <acronym>RFC</acronym> 822 の日付書式で表したもの</para>
91 <para><code>language</code> - チャネルで使用している言語</para>
94 <para><code>category</code> -
95 チャネルの所属するカテゴリ (複数の場合は複数のタグで指定)</para>
101 <acronym>RSS</acronym> の <code><item></code> 要素には必須要素はありません。
102 しかし <code>title</code> あるいは <code>description</code>
113 <para><code>title</code> - アイテムのタイトル</para>
116 <para><code>link</code> - アイテムの <acronym>URL</acronym></para>
119 <para><code>description</code> - アイテムの概要</para>
122 <para><code>author</code> - 著者のメールアドレス</para>
125 <para><code>category</code> - アイテムが所属するカテゴリ</para>
128 <para><code>comments</code> - このアイテムに関連するコメントの <acronym>URL</acronym></para>
131 <para><code>pubDate</code> - アイテムの発行日を <acronym>RFC</acronym> 822 の日付書式で表したもの</para>
137 要素が空要素であるかどうかは、以下のようにして調べられます。
139 <programlisting language="php"><![CDATA[
140 if ($item->propname()) {
146 <code>$item->propname</code> 形式を使用した場合は、
147 空のオブジェクトについても <constant>TRUE</constant> と評価されてしまうので、
153 <ulink url="http://blogs.law.harvard.edu/tech/rss">http://blogs.law.harvard.edu/tech/rss</ulink>
154 にある <acronym>RSS</acronym> 2.0 の公式仕様を参照ください。