XML_Feed_Parser は、有名な XML ベースのシンジケーションフォーマット (Atom、RSS1、RSS2 など) のほとんどに対応した汎用的なインターフェイスを提供します。 その本来の目的に集中するために、HTTP のメソッドやフィード作成用のメソッドは用意していません。 しかしそのかわりに幅広いフォーマットに対してすばやく簡単にアクセスできるようになります。
フィードの XML が変数 $xml_source に保存されているものとしましょう。 パーサのインスタンスを作成する最も簡単な方法は、このようになります。
try { $feed = new XML_Feed_Parser($xml_source); } catch (XML_Feed_Parser_Exception $e) { die('フィードが無効です: ' . $e->getMessage()); } |
コンストラクタに指定できるパラメータは、次のようになります。
/* パースしたいファイル */ $source = 'my_source.xml'; /* Relax NG が使用可能な場合に、フィードの検証を行います */ $validate = true; /* 致命的でない警告を無視するかどうか */ $suppress_warnings = false; /* フィードが妥当な XML でない場合、もし tidy 拡張モジュールがインストール * されていれば、それを使用してフィードを修正します */ $use_tidy = true; $feed = new XML_Feed_Parser($source, $validate, $suppress_warnings, $use_tidy); |
パーサのインスタンスを取得すると、 たとえばこのようにしてフィードレベルのデータを直接取得できるようになります。
$title = $feed->title; |
すべてのフィードを順に処理して要素にアクセスしたり、 オフセットや ID を指定して直接アクセスすることもできます。
foreach ($feed as $entry) { print $entry->title . "\n"; } $first_entry = $feed->getEntryByOffset(0); $particular_entry = $feed->getEntryById('http://jystewart.net/entry/1'); |