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.