📜  php 将 xml 文件读入数组 - PHP (1)

📅  最后修改于: 2023-12-03 15:03:42.027000             🧑  作者: Mango

PHP将XML文件读入数组

在PHP中,我们可以使用SimpleXML扩展来读取XML文件,并将其转换为数组以便进一步处理。下面是一个示例代码片段,演示如何实现:

$xml = simplexml_load_file('file.xml');
$json = json_encode($xml);
$array = json_decode($json,TRUE);

print_r($array);

解释:

首先,使用simplexml_load_file()函数将XML文件读入到一个SimpleXML对象中。然后,使用json_encode()将SimpleXML对象转换为JSON格式。最后,使用json_decode()将JSON格式的数据转换为PHP数组格式。

但是,这种方法还有一个缺点,在读取包含多个同名子节点的XML文件时可能会出现问题。为了避免这种情况,我们可以通过遍历XML文件,并使用addChild()函数将其转换为关联数组。下面是一个示例代码片段:

$xml = simplexml_load_file('file.xml');
$array = array();

foreach ($xml->children() as $item) {
    $key = $item->getName();
    $value = (string) $item;

    if (isset($array[$key])) {
        if (!is_array($array[$key])) {
            $array[$key] = array($array[$key]);
        }
        $array[$key][] = $value;
    } else {
        $array[$key] = $value;
    }
}

print_r($array);

解释:

在这个示例中,我们使用了foreach循环来遍历XML文件中的所有子节点。对于每个子节点,我们将其节点名称作为数组键,并将其节点值作为数组值。

如果有多个同名子节点,我们将它们转换为一个包含多个值的数组。如果只有一个子节点,我们将其转换为一个简单的字符串。

最后,我们使用print_r()函数输出数组,以进行测试和调试。

总结:

使用SimpleXML扩展将XML文件读入到PHP数组中是一种非常方便且流行的方法。无论使用哪种方法,我们都需要注意XML文件的结构,并确保程序能够正确解析它。