最精簡的XML格式與陣列的互相轉換
阿新 • • 發佈:2019-01-26
1.陣列轉XML格式
/** * 陣列轉XML格式 * @param array $arr * @return string XML * @author mosishu */ function arrayToXml($arr,$is_array=false){ if (!$is_array){ $xml = '<?xml version="1.0" encoding="UTF-8"?><root>'; } foreach ($arr as $key=>$val){ if(is_array($val)){ $xml.="<".$key.">".arrayToXml($val,true)."</".$key.">"; }else{ $xml.="<".$key.">".$val."</".$key.">"; } } if (!$is_array){ $xml.="</root>"; } return $xml; }
2.XML轉陣列格式
/** * XML轉陣列格式 * @param string $xml * @return array $val * @author mosishu */ function xmlToArray($xml, $eIsArray=false){ //禁止引用外部xml實體 libxml_disable_entity_loader(true); $xmlstring = (array)simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA); $val = json_decode(json_encode($xmlstring),true); return $val; }