您当前的位置: 首页 > 网站编程 > PHP教程 > 将 SimpleXMLElement 对象转换为 PHP 数组

将 SimpleXMLElement 对象转换为 PHP 数组

作者:不详 来源:网络 发布时间: 2013-10-08 15:23 点击:
PHP 提供了 simplexml_load_string 方法用来解析 XML 格式的字符串,并返回 SimpleXMLElement 对象。不过一般数组是更为适用的,所以也会有转换为普通数组的需求,这个方法测试完全奏效,支持 SimpleXMLElement 对象多层嵌套的情况。 提供两个参数,第一个参数为 Simpl

将 SimpleXMLElement 对象转换为 PHP 数组

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

提供两个参数,第一个参数为 SimpleXMLElement 对象,第二个参数为布尔值,控制最终返回值是否包含根节点。 

function xmlToArr ($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] = ""; 

// Has attributes 
if ($attributes = $node->attributes()) { 
$data = array( 
'attributes' => array(), 
'value' => (count($node) > 0) ? $this->__xmlToArr($node, false) : (string) $node 
); 
foreach ($attributes as $attr => $value) { 
$data['attributes'][$attr] = (string) $value; 

if ($totalElement > 1) { 
$array[$element][] = $data; 
} else { 
$array[$element] = $data; 

// Just a value 
} else { 
if ($totalElement > 1) { 
$array[$element][] = $this->__xmlToArr($node, false); 
} else { 
$array[$element] = $this->__xmlToArr($node, false); 



if ($root) { 
return array($xml->getName() => $array); 
} else { 
return $array; 


}

分享到:
本文"将 SimpleXMLElement 对象转换为 PHP 数组"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(1)
100%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4