simplexmlでのネームスペース対応

phpでsimplexmlを使っていると、ネームスペースではまってしまったのでメモがてらに。 次のようなxmlがありました。

1
2
3
4
5
6
7
8
<entry>
<title>とある記事</title>
<im:updated>2012-01-10</im:updated>
</entry>
<entry>
<title>ちょっとした記事</title>
<im:updated>2012-02-03</im:updated>
</entry>

このとき、updatedを取るためにはちょっとだけ遠回りしないといけないようです。

1
$xml = simplexml_load_file($url); foreach( $xml->entry as $entry){ echo (string)$entry->title; //できる echo (string)$entry->updated; //できない echo (string)$entry->im:updated; //できない echo (string)$entry->children("im", true)->updated; //できる }