XMLデータはPHPのsimplexml_load_file()関数などを用いる事で扱いが簡単になりますが、普通に使用すると「@(アットマーク)attributes」以下のデータが取得できません。
「@attributes」内のデータを取得する方法は以下から。
下記の様なXMLデータがあるとします。
<?xml version="1.0" encoding="UTF-8" ?> <xmldata> <test>test</test> <hoge data01="aaaa" data02="bbbb"> <moge data03="cccc" data04="dddd" /> </hoge> </xmldata>
上記XMLをPHPのsimplexml_load_file()関数で読み込むと、下記の様なデータ形式で取得できます。
object(SimpleXMLElement)#1 (2) { ["test"]=> string(4) "test" ["hoge"]=> object(SimpleXMLElement)#2 (2) { ["@attributes"]=> array(2) { ["data01"]=> string(4) "aaaa" ["data02"]=> string(4) "bbbb" } ["moge"]=> object(SimpleXMLElement)#3 (1) { ["@attributes"]=> array(2) { ["data03"]=> string(4) "cccc" ["data04"]=> string(4) "dddd" } } } }
simplexml_load_file()関数で読み込んだデータを「$xml」とすると、「test」の値は
<?php echo (string) $xml->test; ?>
で表示できますが、「attributes」内の「data01」や「data03」などは下記の様に記述します。
<?php echo (string) $xml->hoge->attributes()->data01; //結果は「aaaa」と表示される echo (string) $xml->hoge->moge->attributes()->data03; //結果は「cccc」と表示される ?>
(string)という表記は「型キャスト」というものです。