//Xml轉數組,包括根鍵忽略空元素和屬性,尚有重大錯誤
private function xml_to_array($xml)
{
$reg = "/<(\\w+)[^>]*?>([\\x00-\\xFF]*?)<\\/\\1>/";
if(preg_match_all($reg, $xml, $matches))
{
$count = count($matches[0]);
$arr = array();
for($i = 0; $i < $count; $i++)
{
$key = $matches[1][$i];
$val = $this->xml_to_array( $matches[2][$i] ); // 遞歸
if(array_key_exists($key, $arr))
{
if(is_array($arr[$key]))
{
if(!array_key_exists(0,$arr[$key]))
{
$arr[$key] = array($arr[$key]);
}
}else{
$arr[$key] = array($arr[$key]);
}
$arr[$key][] = $val;
}else{
$arr[$key] = $val;
}
}
return $arr;
}else{
return $xml;
}
}
// Xml 轉 數組, 不包括根鍵
private function xmltoarray($xml)
{
$arr = $this->xml_to_array($xml);
$key = array_keys($arr);
return $arr[$key[0]];
}