[cakephp]コアのXMLライブラリでRSSをパース

POSTED: Sep 26, 2008, 2:36 pm
TAGS: ,


cakePHP1.2のXMLライブラリでRSS(xml)をパースして、楽ちんにviewへ渡す方法を考えてみました。

まずフィードを取得して、配列に入れてあげます。

uses('Xml');
$xml = new XML("http://hogehoge.com/feed/");
$xml_array = Set::reverse($xml);
pr($xml);

これでcakePHP的な配列になってくれます。
でも、なんだかビュー側でスッとforeachできませんでした(気のせいかな。。。)

コントローラー側

//例えばブログのエントリ部分だけ
$this->set('entries',$xml['Rss']['Channel']['Item']);

これだと、View側でうまいことforeachできませんでした。

なのでコントローラー側で整理してみました。

コントローラー側

//例えばブログのエントリ部分だけ
foreach($xml_array['Rss']['Channel']['Item'] as $entry){
	$entries['item'][] = $entry;
}
$this->set("entries",$entries['item']);

そして
ビュー側

<?php foreach($entries as $entry): ?>
	<li><a href="<?php echo $entry&#91;'link'&#93;; ?>"><?php echo $entry&#91;'title'&#93;; ?></a></li>
<?php endforeach; ?>

これでいつも通り、テンプレートがさくさく書けるようになりました。
んー、こんなことする必要なかったのかは、未だに不明です。。