cakeの便利なライブラリを使ってみよう(xml編)

cake/libs直下にあるphpファイルは、cake本体で利用するためでもあるけど、普通にコントローラから呼び出して使えます。かなり便利なものがたくさんあり、例えば

などがあります

これらのAPIのメソッドは、下記で調べられます。(無いのもあるけど)
http://api.cakephp.org/classes.html

例えば、xml.phpであれば
http://api.cakephp.org/class_xml.html
をみれば良いです。

まずは、xml.phpを使って、このブログのRSSを取得して配列に入れて、タイトルだけ表示する場合。
app/controllers/readxml_controller.phpファイル

<?php
class ReadxmlController extends AppController {
  var $name = 'Readxml';

  var $uses = null;

  function index() {
	uses('Xml');
	$feedurl = 'http://d.hatena.ne.jp/cakephper/rss/';

	$xml = new XML( $feedurl );

	$xml_array = Set::reverse($xml);
	pr($xml_array);
	exit;
  }

}

たったこれだけ!!便利すぎる!!

あとは、$xml_arrayの配列の構造をみて、好きなデータを取得するだけ。

例えばタイトルだけ表示する場合は

<?php
class ReadxmlController extends AppController {
  var $name = 'Readxml';

  var $uses = null;

  function index() {
	uses('Xml');
	$feedurl = 'http://d.hatena.ne.jp/cakephper/rss/';

	$xml = new XML( $feedurl );

	$xml_array = Set::reverse($xml);
	
	foreach($xml_array['RDF']['Item'] as $key => $value){
		
		echo $value['title'].'<br>';
	}
	exit;
  }

}

こんな感じ。あとは$this->setで$value['title']をViewに渡してあげれば良いです。

あー、マジで便利だ。これ。