Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Konvertierung zwischen Arrays und XML in PHP

Detaillierte Erläuterung der Konvertierung zwischen Arrays und XML in PHP

墨辰丷
墨辰丷Original
2018-06-02 09:18:521356Durchsuche

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.

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 in einen XML-Knoten und gibt dann direkt eine Echoausgabe 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, das ist das einfachste, schnellste und unterstützt viele Als Array werden chinesische Zeichen 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. Das generierte 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 wie das Senden von Nachrichten und die Kommunikation liegen alle im XML-Format vor. Daher finden wir zunächst einen Weg, diese XML-Daten abzurufen und sie dann in ein Array zu konvertieren.
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 die XML-Daten über simplexml_load_string() und konvertieren Sie sie dann in JSON Zuerst formatieren und dann in ein Array konvertieren.

 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; 

}

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


Nachdem wir das Array erhalten haben, können wir verschiedene Verarbeitungen an den Daten durchführen.

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.

Verwandte Empfehlungen:

Basierend auf php zur Implementierung der Verwendung parametrisierter QR-Codes für die WeChat-Entwicklung

So verwenden Sie PHP, um das regelmäßige Crawlen von URLs in Seiten zu implementieren

php+jQuery+Ajax, um die asynchrone Seitenaktualisierungsfunktion zu implementieren

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Konvertierung zwischen Arrays und XML in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen 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