PHPでXMLを配列に読み込む方法

こんにちは、さるまりんです。

前回からXML繋がりです。

今回はPHPでXMLを配列に読み込んでみたいと思います。

変数$strにXML文字列にセットされているとして次の3行で実現できます。

// 文字列をXMLに
$xml = simplexml_load_string($str);
// XMLをJSONに
$json = json_encode($xml);
// JSONを配列に
$array = json_decode($json, true);

シンプルなXMLならこれで配列に読み込めます。
1. 文字列をXMLに、2. XMLをJSONに、3. JSONを配列にの3行です。
短いです。シンプルです。なんだか気持ちいです。

実際に動作させた例をです。

PHPコードです。

$str =<<<XML
<?xml version="1.0" encoding="UTF-8"?>
<address>
  <zip>111-0032</zip>
  <state>東京都</state>
  <city>台東区</city>
  <address1>浅草2丁目</address1>
  <address2>雷門ビル 3階</address2>
</address>
XML;

$xml = simplexml_load_string($str);
$json = json_encode($xml);
$array = json_decode($json, true);

print_r($array);

その出力です。

Array
(
    [zip] => 111-0032
    [state] => 東京都
    [city] => 台東区
    [address1] => 浅草2丁目
    [address2] => 雷門ビル 3階
)

前回と同じXMLを使ってみました。
ちゃんと配列に読み込まれていますね。

今回はXMLですが、JSONが出てきました。JSONって便利なんですね。

読んでくださってありがとうございました。

それではまた!