本文介绍: php xml数据数组方法一、可以使用simplexml_load_string()函数将XML数据转换数组方法二、使用PHP内置的DOMDocument类来将XML数据转换数组方法

 

 

目录

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

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


方法一、可以使用simplexml_load_string()函数将XML数据转换数组
$xmlData = '<root&gt;<name&gt;John Doe</name&gt;<age&gt;30</age&gt;</root&gt;';
$xml = simplexml_load_string($xmlData);
$json = json_encode($xml);
$array = json_decode($json, true);
print_r($array);

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

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

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

 方法二、使用PHP内置的DOMDocument类来将XML数据转换为数组的方法
$xmlData = '<root><name>John Doe</name><age>30</age></root>';
$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;
}

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

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

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

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

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

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

原文地址:https://blog.csdn.net/weixin_39934453/article/details/134590003

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_5775.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注