simpleXML manners

<data>
	<elem name="A" age="10"/>
	<elem name="B" age="20"/>
	<elem name="C" age="30"/>
</data>

みたいなxmlの、nameがAのelemのage、要するに10をsimpleXMLで取得しゅる方法。

まずxmlを読み込んで、

$xml = simplexml_load_file("data.xml");

xpathでnameがAのエレメントを抽出する。

$elem = $xml->xpath('//elem[@name="A"]');

$elemがsimpleXMLElementオブジェクトなのでstring型にキャストする。

$age = (string) $elem[0]["age"];
echo $age;
//10

このstringにキャストする部分でだいぶハマった。直感的なようで直感的でないsimpleXML。