Heim > Datenbank > MySQL-Tutorial > Hauptteil

PHP-Verarbeitungsbeispielcode für die Konvertierung zwischen Arrays und XML

怪我咯
Freigeben: 2017-07-11 16:37:44
Original
1770 Leute haben es durchsucht

Während der Entwicklung stoßen wir häufig auf die Konvertierung zwischen Arrays und XML, insbesondere wenn es um die Schnittstellenentwicklung geht. Beispielsweise sendet der andere Client Daten im XML-Format an den Server und das Programm auf dem Server ist für den Empfang und verantwortlich Parsing und muss außerdem Datentabellendaten im XML-Format für Anwendungen von Drittanbietern bereitstellen.
In diesem Artikel stellen wir kurz vor, wie Sie mit PHP die Konvertierung zwischen Arrays und XML durchführen.

PHP konvertiert das Array in XML
PHP kann das Array in das XML-Format konvertieren. Der einfache Weg besteht darin, das Array zu durchlaufen und dann den Schlüssel des Arrays zu konvertieren /value Konvertiert es in einen XML-Knoten und gibt es dann direkt für die Ausgabe aus, z. B.:

function arrayToXml($arr){ 
$xml = "<root>"; 
foreach ($arr as $key=>$val){ 
if(is_array($val)){ 
$xml.="<".$key.">".arrayToXml($val)."</".$key.">"; 
}else{ 
$xml.="<".$key.">".$val."</".$key.">"; 
} 
} 
$xml.="</root>"; 
return $xml; 
}
Nach dem Login kopieren

Ich habe es getestet, dies ist das einfachste, schnellste, unterstützt hauptsächlich Arrays und chinesische Schriftzeichen werden es nicht sein verstümmelt.
Eine andere Methode ist die Verwendung von DOMDocument zum Generieren einer XML-Struktur:

function arrayToXml($arr,$dom=0,$item=0){ 
if (!$dom){ 
$dom = new DOMDocument("1.0"); 
} 
if(!$item){ 
$item = $dom->createElement("root"); 
$dom->appendChild($item); 
} 
foreach ($arr as $key=>$val){ 
$itemx = $dom->createElement(is_string($key)?$key:"item"); 
$item->appendChild($itemx); 
if (!is_array($val)){ 
$text = $dom->createTextNode($val); 
$itemx->appendChild($text); 

}else { 
arrayToXml($val,$dom,$itemx); 
} 
} 
return $dom->saveXML(); 
}
Nach dem Login kopieren

Es kann auch Arrays in XML konvertieren und unterstützt mehrdimensionale Arrays , wird das generierte XML-Chinesisch nicht verstümmelt.

PHP konvertiert XML in ein Array
Bei der Schnittstellenentwicklung stoßen Sie häufig auf Daten, die Ihnen von anderen im XML-Format übermittelt werden, z. B. gängige WeChat-Schnittstellen, Alipay-Schnittstellen usw. Ihre Schnittstellen wie Send Message liegen alle im XML-Format vor, daher finden wir zunächst einen Weg, diese XML-Daten abzurufen und sie dann in ein Array umzuwandeln.
Angenommen, wir erhalten ein XML wie dieses:

 <root> 

<user>

月光光abcd</user> 

<pvs>13002</pvs>

 <ips> 

<baidu_ip>1200</baidu_ip>

 <google_ip>1829</google_ip>

 </ips> 

<date>2016-06-01</date>

 </root>
Nach dem Login kopieren

Parsen und lesen Sie XML-Daten über simplexml_load_string(), konvertieren Sie sie dann zuerst in das JSON-Format und dann in ein Array.

 function xmlToArray($xml){ 

 //禁止引用外部xml实体 

libxml_disable_entity_loader(true); 

$xmlstring = simplexml_load_string($xml, &#39;SimpleXMLElement&#39;, LIBXML_NOCDATA); 

$val = json_decode(json_encode($xmlstring),true); 

return $val; 

}
Nach dem Login kopieren

Rufen Sie xmlToArray() auf, um die folgenden Ergebnisse zu erhalten:


Nachdem wir das Array erhalten haben, können wir verschiedene Operationen ausführen auf die Art der Verarbeitung.

Das obige ist der detaillierte Inhalt vonPHP-Verarbeitungsbeispielcode für die Konvertierung zwischen Arrays und XML. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage