1. 程式人生 > >最精簡的XML格式與陣列的互相轉換

最精簡的XML格式與陣列的互相轉換

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;   
}