xml转数组

我们用simpleXML来解析XML时发现,用simplexml_load_file()方法加载xml文档,打印其值其实得到的是一个大的simplexmlelement对象,对象中有个数组,数组中又包含多个单元,每个单元又是一个simplexmlelement对象,

问题就在这!当访问时,一会用->,一会用[],很不方便,

这时,如果我们能把对象转成数组,这个问题就迎刃而解了,


这里需要用到的时强制转换和递归!

写一个函数,递归把simpleXML对象转成数组,先把最外层对象转成数组,再循环数组,某个单元只要还是对象,就继续调用自身来转换,具体代码如下:

function toArray($sim) {
    $arr = (array) $sim;

    foreach($arr as $k=>$v) {
        if($v instanceof simplexmlelement || is_array($v)) {
            $arr[$k] = toArray($v);
        }
    }

    return $arr;
}

这时,只要把加载过来的xml文档经过toArray函数一转换就变成了一个多维数组了,

以后需要哪些节点信息,只要用数组的方式索引就行了,方便!

$simxml = simplexml_load_file('./book.xml');
$xmlarr = toArray($simxml);
echo $xmlarr['book']['1']['title'];



好,这就是xml转数组,

下一篇:数组转xml 【传送门


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值