[PHP] @attributes内のデータを取得する方法

自由が丘で働くWeb屋のブログ

[PHP] @attributes内のデータを取得する方法

attributes

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)という表記は「型キャスト」というものです。

 
カテゴリー:Webサービス, Webシステム開発
タグ:,
2011年8月22日 23時28分
 

関連記事

 

コメントを書く

(C) 自由が丘で働くWeb屋のブログ