2012-03-15 9 views
0

JSONオブジェクトを構築してjson_encodeを使用してそれらを配信するPHP Webサービスがたくさんあります。PHP - JSON to SimpleXML

これはうまくいきましたが、Webサービスが特定のパラメータに応じてXMLで配信できるという要件が追加されました。

可能であればPEAR XMLから遠ざかり、SimpleXMLで実装できる簡単なソリューションを見つけてください。

誰でも助言をいただけますか?

おかげ

+0

はい、SimpleXmlで実装できます。どのようなアドバイスをお探しですか? – Gordon

+0

オブジェクトをXMLに変換するには、次の質問を参照してください。http://stackoverflow.com/questions/137021/php-object-as-xml-document – chiborg

+0

上記を参照してください。可能であれば、私はPEAR XMLから遠ざかりたいと思います。私はSimpleXMLを使いたい。 JSONをXMLに変換するjson_encodeのような簡単な関数があるかどうかを知りたいだけです。 – adam

答えて

1

あなたはjson_decode($json,true)を使用して連想配列を作成し、XMLに変換するには、次の機能を試すことができます。

function assocArrayToXML($root_element_name,$ar) 
{ 
    $xml = new SimpleXMLElement("<?xml version=\"1.0\"?><{$root_element_name}></{$root_element_name}>"); 
    $f = function($f,$c,$a) { 
      foreach($a as $k=>$v) { 
       if(is_array($v)) { 
        $ch=$c->addChild($k); 
        $f($f,$ch,$v); 
       } else { 
        $c->addChild($k,$v); 
       } 
      } 
    }; 
    $f($f,$xml,$ar); 
    return $xml->asXML(); 
} 

// usage 
$data = json_decode($json,true); 
echo assocArrayToXML("root",$data); 
+0

いくつかのテストなどを追加しました:https://github.com/mevdschee/json2xml.php – mevdschee