淘宝API 获取商品详细信息后,如何将获取的SimpleXMLElement 对象变成数组?

燧人氏 发布于 2013/03/07 23:30
阅读 2K+
收藏 1

淘宝API 获取商品详细信息后,会得到SimpleXMLElement 对象,如何将这个对象转换成数组呢?


$resp = $c->execute($req, $sessionKey);

需要递归转换哦,直接的

$resp = (array) $resp;

没有将里面层的变成数量。

不知道我表述的清楚不,


我的意思是想让获取淘宝信息后,转换成数组更好操作一些。当然其实SimpleXMLElement 也很好操作,只是我想要数组形式。


加载中
0
Socket378
Socket378
你随便找个XML转换数组的函数或者类就可以!百度一下,很多的。
燧人氏
燧人氏
找了,都是只有第一层数组转了,第二层就没转了。
0
Socket378
Socket378

那你试试这个!我也是用这个抓取淘宝数据的,都用了N长时间了。

// XML转换成数组
    private function simplexml_obj2array($obj)
    {
        if( count($obj) >= 1 )
        {
            $result = $keys = array();

            foreach( $obj as $key=>$value)
            {   
                isset($keys[$key]) ? ($keys[$key] += 1) : ($keys[$key] = 1);

                if( $keys[$key] == 1 )
                {
                    $result[$key] = $this->simplexml_obj2array($value);
                }
                elseif( $keys[$key] == 2 )
                {
                    $result[$key] = array($result[$key], $this->simplexml_obj2array($value));
                }
                else if( $keys[$key] > 2 )
                {
                    $result[$key][] = $this->simplexml_obj2array($value);
                }
            }
            return $result;
        }
        else if( count($obj) == 0 )
        {
            return (string)$obj;
        }
    }


_Aaron_
_Aaron_
谢谢~~
返回顶部
顶部