PHP XML和数组互相转换

时间:2023-01-21 16:41:20
        //数组转XML
function arrayToXml($arr)
{
$xml = "<xml>";
foreach ($arr as $key=>$val)
{
if (is_numeric($val)){
$xml.="<".$key.">".$val."</".$key.">";
}else{
$xml.="<".$key."><![CDATA[".$val."]]></".$key.">";
}
}
$xml.="</xml>";
return $xml;
} //将XML转为array
//先把xml转换为simplexml对象,再把simplexml对象转换成 json,再将 json 转换成数组。
function xmlToArray($xml)
{
//禁止引用外部xml实体
libxml_disable_entity_loader(true);
$values = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
return $values;
}

先把 simplexml 对象转换成 json,再将 json 转换成数组。