Detaillierte Erläuterung von Konvertierungsbeispielen zwischen PHP-Arrays und XML

怪我咯
Freigeben: 2023-03-12 20:46:01
Original
1266 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die Verwendung von PHP zur Verarbeitung der Konvertierung zwischen Arrays und XML beschrieben. Er stellt detailliert vor, wie PHP Arrays in XML konvertiert.

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 darauf befindliche Programm ist für den Empfang und die Analyse verantwortlich Außerdem muss die Datentabelle im XML-Format für Drittanwendungen bereitgestellt werden.
In diesem Artikel stellen wir kurz vor, wie Sie mit PHP die Konvertierung zwischen Arrays und XML durchführen.

Quellcode-Download: Konvertierung zwischen PHP-Array und XML

PHP konvertiert Array in XML
PHP kann Array in XML-Format konvertieren, Der einfache Weg besteht darin, das Array zu durchlaufen , dann den Schlüssel/Wert des Arrays in XML-Knoten umzuwandeln und dann die Ausgabe direkt wiederzugeben, 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; 
}
Nach dem Login kopieren

Ich habe es getestet , Dies ist die einfachste und schnellste Methode, unterstützt hauptsächlich Arrays und chinesische Schriftzeichen werden nicht 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 vonDetaillierte Erläuterung von Konvertierungsbeispielen zwischen PHP-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