PHPではRSSなどXMLデータを読み込む時に、SimpleXMLを使うことがあります。
今回、そのSimpleXML形式のデータを配列に変換する必要があったので、調査していました。
少し調べてみると、SimpleXMLのデータを再帰的にループすることで配列に整形するロジックを見つけました。また、その他にいくつかライブラリが公開されているようです。
なるべく簡単な方法を求めていたのですが、どうもPHP標準でそのような変換関数は用意されていないようです。
そんな中でも、一度JSONコードに変換することで配列を得る方法を見つけました。
以下は、このブログのRSSをSimpleXML形式に読み込んだ後、Array形式に変換するサンプルコードです。
$xml = simplexml_load_string('https://helog.jp/feed/atom/'); $array = json_decode(json_encode($xml), true);
ただしこの場合、XMLデータの値は変換できても、属性は失われるようなので、注意が必要です。
シンプルな方法ではあるので、属性を無視できるケースでは重宝しそうです。
コメントする