php解析xml到php数组是个问题,不太好搞。看了下往上经典的处理方式就是
$b = json_decode(json_encode((array)$xml),true);
这个方式有个问题就是<![CDATA[会被处理为空得数据
不得已自己写了一个函数处理这个问题
function xml2Array($xml) { $arr = null; if($xml->attributes() ) { foreach($xml->attributes() as $k=>$v) { $arr['@a'][$k]= $v->__toString(); } } /* if($xml->getName() == 'description') { var_dump($xml); var_dump($xml->count());exit; } */ if($xml->count()) { foreach($xml as $v) { $va = $v->getName(); if($xml->count() > 0){ $va = $v->getName(); if(count($xml->$va) > 1) { $arr[$v->getName()][]= xml2Array($v); } else { $arr[$v->getName()] = xml2Array($v); } } else { $arr[$v->getName()] = xml2Array($v); } } } else { if($arr['@a']) { $arr['_v'] = $xml->__toString(); } else { $arr = $xml->__toString(); } } return $arr; }