2012-03-03 35 views
9

¿Cuál es la forma más fácil de tomar un objeto JSON o Array y convertirlo a XML? Tal vez estoy buscando en todos los lugares equivocados, pero no estoy encontrando una respuesta decente para ponerme en camino con eso. ¿Es esto algo que tendría que construir de alguna manera? ¿O hay algo así como json_encode/json_decode que tomará una matriz o un objeto json y lo desplegará como un objeto xml?PHP JSON o Matriz a XML

+0

http://stackoverflow.com/questions/1397036/how-to-convert-array-to-simplexml – linuxeasy

+0

¿Cómo le gustaría convertir un JSON/matriz en un XML? ¿Puede dar un ejemplo? – Gumbo

Respuesta

4

No estoy seguro de la manera más fácil. Ambos son relativamente simples como lo veo.

Aquí hay un tema que cubre array to xml - How to convert array to SimpleXML y muchas páginas que cubren json to xml se pueden encontrar en google, así que supongo que es más o menos una cuestión de gusto.

6

Aquí está mi variante de la conversión de JSON a XML. puedo obtener una matriz a partir de JSON utilizando json_decode función():

$array = json_decode ($someJsonString, true); 

Entonces convertir la matriz a XML con mi arrayToXml función():

$xml = new SimpleXMLElement('<root/>'); 
$this->arrayToXml($array, $xml); 

Aquí está mi función arrayToXml():

/** 
* Convert an array to XML 
* @param array $array 
* @param SimpleXMLElement $xml 
*/ 
function arrayToXml($array, &$xml){ 
    foreach ($array as $key => $value) { 
     if(is_array($value)){ 
      if(is_int($key)){ 
       $key = "e"; 
      } 
      $label = $xml->addChild($key); 
      $this->arrayToXml($value, $label); 
     } 
     else { 
      $xml->addChild($key, $value); 
     } 
    } 
}