json2xml を実現するには simplexmlが便利です。
XMLでデータ管理するのは、いいんだけど、JSONのほうがメジャーだし、パースするの楽だから、JSON使いたい。でも旧システムがXMLとかで、仕方なくXMLを出力してあげようってとき
simpleXMLでパパっと出来ます。
<?php $json_str = '{ "a": "12345", "b":"09876" }'; $obj = (array)json_decode($json_str); $obj = array_flip($obj); $xml = new SimpleXMLElement('<root/>'); array_walk_recursive($obj, array ($xml, 'addChild')); header("Content-type : text/xml; charset=utf-8"); echo $xml->asXML();
実行結果
<?xml version="1.0"?> <root><a>12345</a><b>09876</b></root>
いくつかポイント
addChildするときに、 array_flip してないと、キーと値が逆になったXMLが出力されちゃう。
細いことは考えずに、パパっと出来る範囲でやればいいと思うわけです。