php xml to array转换函数

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;

}

好店开张

又一次搭建起来了这个博客,以后可以长期开始写博客了。。吼吼

计划:

1,自己运营一个网站。。。

2,写技术博客