Sivo 悉见

PHP转换XML为数组

匿名 · 更新于 2015/4/15

// Xml 转 数组, 包括根键
    function xml_to_array($xml)
    {
        $reg = '/<(\\w+)[^>]*>([\\x00-\\xFF]*)<\\/\\1>/';
        if (preg_match_all($reg, $xml, $matches)) {
            $count = count($matches[0]);
            for ($i = 0; $i < $count; $i++) {
                $subxml = $matches[2][$i];
                $key = $matches[1][$i];
                if (preg_match($reg, $subxml)) {
                    $arr[$key] = xml_to_array($subxml);
                } else {
                    $arr[$key] = $subxml;
                }
            }
        }
        return $arr;
    }
    // Xml 转 数组, 不包括根键
    function xmltoarray($xml)
    {
        $arr = xml_to_array($xml);
        $key = array_keys($arr);
        return $arr[$key[0]];
    }