— [cakephp]コアのXMLライブラリでRSSをパース
Posted: Sep 26, 2008, 2:36 pm | Author: cyberryo | Category: Dialy | Tags: Cakephp, Program
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['link']; ?>"><?php echo $entry['title']; ?></a></li> <?php endforeach; ?>
これでいつも通り、テンプレートがさくさく書けるようになりました。
んー、こんなことする必要なかったのかは、未だに不明です。。