[PHP] SimpleXML関数を使ってXMLデータをパースする

結果をXML形式で返すウェブサービス (Web API) を使うことがある。そこで、PHPでXMLデータをパースする方法を覚え書き。

PHP5のSimpleXMLエクステンションを使うと簡単

PHP5にはSimpleXMLと呼ばれるXML操作のための拡張モジュールが含まれている。SimpleXMLの関数を使うと、XMLを簡単にオブジェクトに変換可能。

PHP: SimpleXML – Manual
https://php.net/manual/ja/book.simplexml.php

PHP: XML 操作 – Manual
https://php.net/manual/ja/refs.xml.php

サンプルコード

XMLデータにCDATAセクションが含まれていると上のコードでは読めない。その場合、以下のように変更する。

XML用語事典 [CDATAセクション]
http://www.atmarkit.co.jp/aig/01xml/cdata.html

パースしたXML要素はオブジェクトのプロパティとして参照できる。たとえば $data->section->item という感じ。開発途中でprint_r()関数などを使ってダンプしておくとXML要素の特定は楽になる。

参考サイト

SimpleXML | PHP プログラミング解説
http://www.crystal-creation.com/web-app/tech/programming/php/xml/simple-xml.htm

PHP SimpleXMLでXMLパースをするときの注意点まとめ – ウッディーの日記
http://blog.livedoor.jp/gnoot/archives/51371942.html