?
?
目錄
方法一、可以使用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數據進行適當的調整?