Home > Database > Mysql Tutorial > body text

PHP processing example code for converting between arrays and XML

怪我咯
Release: 2017-07-11 16:37:44
Original
1769 people have browsed it

In development, we often encounter the conversion between arrays and XML, especially when dealing with interface development. For example, the other client POSTs data in XML format to the server, and the program on the server It is responsible for receiving and parsing, and also needs to provide data table data to third-party applications in XML format.
In this article we will briefly introduce how to use PHP to handle conversion between arrays and XML.

PHP converts the array into XML
PHP can convert the array into xml format. The simple way is totraverse the array, and then convert the array's key/value Convert it into an xml node, and then echo it directly for output, such as:

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; 
}
Copy after login

I tested it, this is the simplest, fast, supports mostly arrays, and Chinese characters will not be garbled.
Another method is to use DOMDocument to generate xml structure:

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

It can also convert arrays into xml, and supports multi-dimensional arrays, generating The Chinese xml will not be garbled.

PHP converts XML into an array
When doing interface development, you often encounter data submitted to you by others in xml format, such as common WeChat interfaces, Alipay interfaces, etc. Their interfaces such as Send Message are all in xml format, so we first find a way to get this xml data, and then convert it into an array.
Suppose we get an XML like this:

 <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>
Copy after login

Parse and read xml data through simplexml_load_string(), then convert it to json format first, and then convert it into an 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; 

}
Copy after login

Call xmlToArray() to get the following results:


After getting the array, we can perform various processing on the data .

The above is the detailed content of PHP processing example code for converting between arrays and XML. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template