XMLデータはPHPのsimplexml_load_file()関数などを用いる事で扱いが簡単になりますが、普通に使用すると「@(アットマーク)attributes」以下のデータが取得できません。
「@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)という表記は「型キャスト」というものです。


コメント