PHP实现数组与XML互相转换的实例代码

2025-01-15 03:56:06   小编

在PHP开发中,数组与XML之间的相互转换是一项常见且实用的操作。本文将通过实例代码详细介绍如何实现这两种数据结构的转换。

将数组转换为XML。我们可以编写一个函数来完成此任务。以下是具体代码:

function array_to_xml($data, &$xml_data) {
    foreach($data as $key => $value) {
        if(is_array($value)) {
            if(!is_numeric($key)){
                $subnode = $xml_data->addChild("$key");
                array_to_xml($value, $subnode);
            } else {
                $subnode = $xml_data->addChild("item");
                array_to_xml($value, $subnode);
            }
        } else {
            $xml_data->addChild("$key",htmlspecialchars("$value"));
        }
    }
}

使用这个函数时,我们可以这样调用:

$array = array(
    "book" => array(
        "title" => "PHP开发实战",
        "author" => "张三",
        "price" => "59.9"
    )
);

$xml = new DOMDocument('1.0', 'UTF-8');
$root = $xml->createElement('books');
$xml->appendChild($root);
array_to_xml($array, $root);
$xml->formatOutput = true;
echo $xml->saveXML();

上述代码首先定义了一个array_to_xml函数,它递归地遍历数组,并将其转换为XML节点。然后创建了一个示例数组,并利用该函数将其转换为XML格式输出。

接下来,看看如何将XML转换为数组。以下是实现代码:

function xml_to_array($xml) {
    $array = json_decode(json_encode(simplexml_load_string($xml)), TRUE);
    return $array;
}

使用方式如下:

$xml_str = '<books><book><title>PHP开发实战</title><author>张三</author><price>59.9</price></book></books>';
$result = xml_to_array($xml_str);
print_r($result);

这段代码定义了xml_to_array函数,通过json_decodejson_encode以及simplexml_load_string函数将XML字符串转换为数组。然后定义了一个XML字符串,并调用该函数将其转换为数组并打印输出。

通过以上实例代码,我们可以轻松实现PHP中数组与XML之间的相互转换,这在数据交换、配置文件处理等场景中有着广泛的应用,希望这些代码示例能帮助开发者在实际项目中更高效地处理数据。

TAGS: PHP数组转XML XML转PHP数组 数组与XML转换 PHP实例代码

欢迎使用万千站长工具!

Welcome to www.zzTool.com