用PHP解析XML为数组的方法

XML——可扩展标记语言 。

可扩展标记语言,标准通用标记语言的子集,一种用于标记电子文件使其具有结构性的标记语言。

它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。

PHP5已经内置的用于解析XML的函数,但使用起来并不顺手,于是就有了下面这段代码:

<?php
function xmlToArray($xml) {
    $array = (array)(simplexml_load_file($xml, null, LIBXML_NOCDATA));
    foreach ($array as $key => $value) {
        $array[$key] = structToArray((array)$value);
    }
    return $array;
}

function structToArray($item) {
    if (!is_string($item)) {
        $item = (array)$item;
        foreach ($item as $key => $value) {
            $item[$key] = structToArray($value);
        }
    }
    return $item;
}

$file ="test.xml";
$arrXml = xmlToArray($file);
print_r($arrXml);
?>