PHPのSimpleXMLの使い方

2010年4月30日

PHPでXMLを解析する場合は、SimpleXMLという関数が利用出来る。

以下はサンプルコードで、対象のXMLはGoogleのカレンダーの限定公開URLを使ってみた。

$xml = simplexml_load_file('test.xml’);

foreach( $xml->entry as $obj )
{
$title = $obj->title;
$content = $obj->content;

echo $title."\n";
echo $content."\n";
}

なお、自分がハマった注意すべき点として、
entry内titleは属性として
typeというのをGoogleカレンダーの限定公開URLは持っている。

例)
<title type="html">タイトル名です</title>

これがある状態で、var_dump($obj->entry[0]->title);というような事をすると、
すぐにタイトルの値が出てこなくて、属性値も

object(SimpleXMLElement)#6 (2) {
[“@attributes"]=>
array(1) {
[“type"]=>
string(4) “html"
}
[0]=>
string(9) “タイトル名です"
}

こんな風に出てしまうので注意。echoすると問題ない。