2012-03-15 3 views
0

JSON 객체를 구성하고 json_encode을 사용하여 전달하는 PHP 웹 서비스가 많이 있습니다.PHP - JSON to SimpleXML

잘 작동하지만 웹 서비스가 주어진 매개 변수에 따라 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