2012-03-15 45 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