Heim  >  Artikel  >  Backend-Entwicklung  >  PHP übernimmt die Konvertierung zwischen Arrays und XML

PHP übernimmt die Konvertierung zwischen Arrays und XML

高洛峰
高洛峰Original
2016-12-22 14:48:391006Durchsuche

Während der Entwicklung stoßen wir häufig auf die Konvertierung zwischen Arrays und XML, insbesondere bei der Schnittstellenentwicklung. 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 auch 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, dann den Schlüssel/Wert des Arrays in XML-Knoten zu konvertieren und dann das Array wiederzugeben Direkte Ausgabe, wie zum Beispiel:

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;
}

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

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();
}

Es kann auch Arrays in XML konvertieren und unterstützt mehrdimensionale Arrays generiertes XML-Chinesisch wird 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 dienen zum Beispiel zum Senden von Nachrichten Die gesamte Kommunikation erfolgt im XML-Format. 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>

Analysieren und lesen Sie die XML-Daten über simplexml_load_string() und konvertieren Sie sie dann in das JSON-Format Zuerst konvertieren Sie es 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;
 
}

Der Aufruf von xmlToArray() kann die folgenden Ergebnisse erhalten:

PHP übernimmt die Konvertierung zwischen Arrays und XML

Nach dem Abrufen des Arrays Wir können Ihnen verschiedene Verarbeitungen der Daten anbieten.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er zum Lernen aller beiträgt. Ich hoffe auch, dass jeder die PHP-Chinesisch-Website unterstützt.

Weitere Artikel zur Konvertierung zwischen PHP-Verarbeitungsarrays und XML finden Sie auf der chinesischen PHP-Website!


Stellungnahme:
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