Web/DB プログラミング徹底解説

ホーム > PHP プログラミング > SimpleXML を利用した XML の利用

SimpleXML を利用した XML の利用

ご存知の通り、最近の Web では XML を利用する機会が増えています。 例えば、SOAP Web サービスではリクエスト・レスポンス共に XML。 REST Web サービスではレスポンスが XML です。XML を簡単に解析する手段が欲しい機会はたくさんあります。

PHP では SimpleXML というライブラリがあり、これを使うとファイル、文字列等から XML を読み込み、 読み込んだ結果を PHP のオブジェクトに変換できます。

SimpleXML を利用した XML の解析例


$s = '<?xml version="1.0"?><employeelist>'
.'<employee><name>Taro Suzuki</name><age>30</age></employee>'
.'<employee><name>Hanako Yamada</name><age>24</age></employee>'
.'</employeelist>';

$xml = simplexml_load_string( $s );

echo '<pre>';
var_dump( $xml );
echo '</pre>';

この結果 $xml は以下のような形に変換されたことがわかります。

object(SimpleXMLElement)#1 (1) {
  ["employee"]=>
  array(2) {
    [0]=>
    object(SimpleXMLElement)#2 (2) {
      ["name"]=>
      string(11) "Taro Suzuki"
      ["age"]=>
      string(2) "30"
    }
    [1]=>
    object(SimpleXMLElement)#3 (2) {
      ["name"]=>
      string(13) "Hanako Yamada"
      ["age"]=>
      string(2) "24"
    }
  }
}

XML から JSON への変換

XML を JSON に変換するには、上記の simplexml_load_string で XML を PHP オブジェクトに変換し、 それを json_encode すれば終了です。

例えば上記の $xml を JSON 形式でクライアントに返すには次のようにします。

echo json_encode( $xml );