PHP function for reading DOM XML into an array
$xml = read($dom);
function read($node) {
$array = array();
if ($node->firstChild !== null) {
$current = $node->firstChild;
} else {
return;
}
while (true) {
switch ($current->nodeType) {
case 1: // XML_ELEMENT_NODE
$array[$current->nodeName][] = $this->read($current);
break;
case 3: // XML_TEXT_NODE
case 4: // XML_CDATA_SECTION_NODE
if (strlen(trim($current->nodeValue)) > 0) {
return $current->nodeValue;
}
break;
default:
echo $current->nodeType;
break;
}
if ($current->nextSibling !== null) {
$current = $current->nextSibling;
} else {
return $array;
}
}
return $array;
}