PHP SimpleXML オブジェクト@(アットマーク)attributes のアクセス
PHP で Amazon Product Advertising API を利用して受け取った検索結果の XML データは、SimpleXML のオブジェクトで取り込むことで処理も容易になる。のだが、属性データのアクセスでつまづいて年を越してしまった。次のようなオブジェクトの [@attributes] が、どうやってアクセスしたらいいか分からなかったのである。
SimpleXMLElement Object
(
[Argument] => Array
(
[0] => SimpleXMLElement Object
(
[@attributes] => Array
(
[Name] => Timestamp
[Value] => 2010-01-02T13:34:57Z
)
)
[1] => SimpleXMLElement Object
(
[@attributes] => Array
(
[Name] => Version
[Value] => 2009-10-01
)
)
年も改まったので、早速 Google 先生にお尋ねしたところ、どなたかのブログのメモ「PHPのsimplexmlで読み込んだXMLの@attributesにアクセスする方法」がヒットした。
なるほど、
$name = $xml->Argument[0]->attributes()->Name; $value = $xml->Argument[0]->attributes()->Value;
とアクセスすればいいわけか。
ただし、$name も $value もオブジェクトなので、文字列として利用したい場合は、次のようにキャストしておくと良い。
$name = (string) $xml->Argument[0]->attributes()->Name; $value = (string) $xml->Argument[0]->attributes()->Value;

コメントはまだありません。