600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > php simplexmlelement array php中SimpleXMLElement 对象转换为数组

php simplexmlelement array php中SimpleXMLElement 对象转换为数组

时间:2018-11-08 02:39:49

相关推荐

php simplexmlelement array php中SimpleXMLElement 对象转换为数组

PHP 提供了 simplexml_load_string 方法用来解析 XML 格式的字符串,并返回 SimpleXMLElement 对象,不过一般数组是更为适用的,所以也会有转换为普通数组的需求,这个方法测试完全奏效,支持 SimpleXMLElement 对象多层嵌套的情况.

提供两个参数,第一个参数为 SimpleXMLElement 对象,第二个参数为布尔值,控制最终返回值是否包含根节点,代码如下:<?php

functionxmlToArr($xml,$root=true){

if(!$xml->children()){

return(string)$xml;

}

$array=array();

foreach($xml->children()as$element=>$node){

$totalElement=count($xml->{$element});

if(!isset($array[$element])){

$array[$element]="";

}

//Hasattributes

if($attributes=$node->attributes()){

$data=array(

'attributes'=>array(),

'value'=>(count($node)>0)?$this->__xmlToArr($node,false):(string)$node

);

foreach($attributesas$attr=>$value){

$data['attributes'][$attr]=(string)$value;

}

if($totalElement>1){

$array[$element][]=$data;

}else{

$array[$element]=$data;

}

//Justavalue

}else{

if($totalElement>1){

$array[$element][]=$this->__xmlToArr($node,false);

}else{

$array[$element]=$this->__xmlToArr($node,false);

}

}

}

if($root){

returnarray(

$xml->getName()=>$array

);

}else{

return$array;

}

}

?>

随便收藏,请保留本文地址!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。