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; }
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(); }
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>
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, 'SimpleXMLElement', LIBXML_NOCDATA); $val = json_decode(json_encode($xmlstring),true); return $val; }
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!