php xml数据转数组两种方式

 

 

目录

方法一、可以使用simplexml_load_string()函数将XML数据转换为数组。

 方法二、使用PHP内置的DOMDocument类来将XML数据转换为数组的方法


方法一、可以使用simplexml_load_string()函数将XML数据转换为数组。
$xmlData = 'John Doe30';
$xml = simplexml_load_string($xmlData);
$json = json_encode($xml);
$array = json_decode($json, true);
print_r($array);

php xml数据转数组两种方式_第1张图片

首先将XML数据存储在一个字符串中,然后使用simplexml_load_string()函数将其转换为SimpleXMLElement对象。

接下来,使用json_encode()函数将SimpleXMLElement对象转换为JSON字符串,

再使用json_decode()函数将JSON字符串转换为关联数组。最后,使用print_r()函数打印出数组的内容 

 方法二、使用PHP内置的DOMDocument类来将XML数据转换为数组的方法
$xmlData = 'John Doe30';
$xml = new DOMDocument();
$xml->loadXML($xmlData);
$array = domToArray($xml->documentElement);
print_r($array);
function domToArray($node) {
    $array = array();

    if ($node->hasAttributes()) {
        foreach ($node->attributes as $attr) {
            $array[$attr->nodeName] = $attr->nodeValue;
        }
    }

    if ($node->hasChildNodes()) {
        foreach ($node->childNodes as $childNode) {
            if ($childNode->nodeType == XML_ELEMENT_NODE) {
                $array[$childNode->nodeName] = domToArray($childNode);
            } else if ($childNode->nodeType == XML_TEXT_NODE) {
                $array['value'] = $childNode->nodeValue;
            }
        }
    }

    return $array;
}

php xml数据转数组两种方式_第2张图片

这个例子创建了一个DOMDocument对象,并使用loadXML()方法将XML数据加载到该对象中。

然后,使用domToArray()函数将DOM文档转换为数组。

这个函数递归地遍历XML节点,并将节点的名称和值存储在数组中。

如果节点有属性,则也将其作为键值对存储在数组中。

最后,使用print_r()函数打印出数组的内容。

需要注意的是,domToArray()函数是递归的,它能够处理复杂的XML结构。请根据你的XML数据进行适当的调整 

你可能感兴趣的:(乱七八糟,php,开发语言,php,笔记)