Red de conocimiento informático - Problemas con los teléfonos móviles - thinkphp adquisición entre dominios xml a json

thinkphp adquisición entre dominios xml a json

Conversión mutua entre php xml y json

Primero, consulte el archivo xml de la siguiente manera

¿Ver copia e imprimir?

lt ;?xml version="1.0" encoding="UTF-8"?gt;

lt;humansgt;

lt;zhangyinggt; ; zhangyinggt;

lt;tankgt;

lt;namegt;tanklt;/namegt;

lt;sexgt

lt;haogt; ;sí ;/haogt;

lt;aaaagt;nolt;/aaaagt;

lt;/sexgt

lt;oldgt;28lt;/oldgt;

p>

lt;/tankgt;

lt;/humansgt;

En segundo lugar, convertir xml a json

Usar simplexml

¿Ver copiar e imprimir?

public function xml_to_json($source) {

if(is_file($source)){ //Determinar si el archivo pasado file es un archivo o una cadena xml

$xml_array=simplexml_load_file($source);

}else{

$xml_array=simplexml_load_string($source);

}

$json = json_encode($xml_array); //php5 y superior, si es una versión anterior, descargue JSON.php

return $json;

}

En tercer lugar, convertir json a xml

Usar función recursiva

¿Ver copiar e imprimir?

función pública json_to_xml($source, $charset='utf8') {

if(emptyempty($source)){

return false

}

$ array = json_decode($source); //php5 y superior, si es una versión anterior, descargue JSON.php

$xml ='lt ;!--l version="1.0" codificación= "'.$charset.'--gt;';

$xml .= $this-gt; change($array);

devolver $xml;

}

p>

cambio de función pública($fuente) {

$string=""

foreach($fuente como $k=gt;$v){

$string .="lt;".$k."gt;";

if(is_array($v) || is_object($v)){ //Determinar si es una matriz u objeto

$string .= $this-gt; change($v); //Es una llamada recursiva para una matriz u objeto

}else{ < / p>

$string .=$v; //Obtener datos de etiqueta

}

$string .=""; p >

return $string;

}

El método anterior json_to_xml puede admitir lt;namegt;aaaalt;/namegt;, pero no admite lt;name type=' test' gt;aaaaalt;/namegt;Puedes entenderlo mirando el código.