目录
方法一、可以使用simplexml_load_string()函数将XML数据转换为数组。
方法二、使用PHP内置的DOMDocument类来将XML数据转换为数组的方法
方法一、可以使用simplexml_load_string()
函数将XML数据转换为数组。
$xmlData = '<root><name>John Doe</name><age>30</age></root>';
$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数据进行适当的调整