手机版

PHP处理数组和XML之间的转换

时间:2021-10-28 来源:互联网 编辑:宝哥软件园 浏览:

在开发中,我们经常会遇到数组和XML之间的相互转换,尤其是在处理接口开发的时候。比如对端客户端向服务器POST一个XML格式的数据,服务器上的程序负责接收和解析,数据表需要以XML格式提供给第三方。本文将简要介绍如何使用PHP来处理数组和XML之间的转换。

源代码下载:PHP数组和XML之间的转换。

把PHP数组转换成xmlPHP可以把数组转换成xml格式。简单的方法是遍历数组,然后将数组的键/值转换成XML节点,然后直接回显输出,例如:

函数arrayToXml($ arr){ $ XML=' root ';foreach($ arr as $ key=$ val){ if(is _ array($ val)){ $ XML。=''.$key。''.arrayToXml($val)。'/'.$key。'';}else{ $xml。=''.$key。''.$瓦尔。'/'.$key。'';} } $xml。='/root ';返回$ xml}我测试过,最简单快捷。大部分支持数组,中文不会乱码。另一种方法是使用DOMDocument生成xml结构:

函数arrayToXml($arr,$dom=0,$item=0){ if(!$ DOM){ $ DOM=new DOM document(' 1.0 ');} if(!$ item){ $ item=$ DOM-create element(' root ');$ DOM-appendChild($ item);} foreach($ arr as $ key=$ val){ $ itemx=$ DOM-create element(is _ string($ key)?$ key : ' item ');$ item-appendChild($ itemx);if(!is _ array($ val)){ $ text=$ DOM-createTextNode($ val);$ itemx-appendChild($ text);}else { arrayToXml($val,$dom,$ itemx);} }返回$ DOM-SAVEXMl();}它还可以将数组转换成xml,并且支持多维数组,生成的xml中文不会乱码。

把PHP转换成数组进行界面开发时,经常会遇到别人提交的xml格式的数据,比如微信界面、支付宝界面。它们的接口,比如发送消息和通信,都是xml格式的,所以我们应该先尝试获取这个XML数据,然后转换成数组。假设我们得到这样一个XML:

用户月光ABCD/用户PVS 13002/PVS IPS Baidu _ IP 1200/Baidu _ IP Google _ IP 1829/Google _ IP/IPS date 2016-06-01/date/root通过simplexml_load_string()解析读取xml数据,然后转换为json格式再转换为数组。

函数xmlToArray($xml){ //禁止引用外部xml实体libxml _ disable _ entity _ loader(true);$ xmlstring=simple XML _ load _ string($ XML,' SimpleXMLElement ',LIBXML _ NOCDATA);$ val=JSON _ decode(JSON _ encode($ xmlstring),true);返回$ val}调用xmlToArray()获取以下结果:

得到数组后,我们可以对数据进行各种处理。

这就是本文的全部内容。希望对大家的学习有帮助,希望大家多多支持我们。

版权声明:PHP处理数组和XML之间的转换是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。