2012-03-15 52 views
0

我有一大堆的PHP Web服務構建JSON對象,並使用json_encode拯救他們。PHP - JSON來的SimpleXML

這工作得很好,但我現在有一個Web服務也可以提供在XML,根據給定參數的要求。

我想如果可能的話,從PEAR XML遠離,並希望找到一個簡單的解決方案,可以用SimpleXML來實現。

任何人都可以給我任何建議嗎?

感謝

+0

是的,它可以用SimpleXml實現。請說明你在尋找什麼樣的建議? – Gordon 2012-03-15 13:07:12

+0

用於轉換你的對象到XML看這個問題:http://stackoverflow.com/questions/137021/php-object-as-xml-document – chiborg 2012-03-15 13:16:03

+0

見上文 - 我想如果可能的話,從PEAR XML望而卻步。我想使用SimpleXML。我只想知道是否有一個簡單的函數,就像json_encode一樣簡單,可以將JSON轉換爲XML。 – adam 2012-03-28 08:19:33

回答

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 2017-02-22 00:48:37