static function xml2assoc(&$xml) { $assoc = NULL; $n = 0; while ($xml->read()) { if ($xml->nodeType == XMLReader::END_ELEMENT) break; if ($xml->nodeType == XMLReader::ELEMENT and !$xml->isEmptyElement) { if ($xml->depth == 2) { $assoc[$xml->name] = EClassApi::xml2assoc($xml); } else { $assoc[$n][$xml->name] = EClassApi::xml2assoc($xml); } $n++; } else if ($xml->isEmptyElement) { $assoc[$n][$xml->name] = ""; $n++; } else if ($xml->nodeType == XMLReader::TEXT) { $assoc = $xml->value; } } return $assoc; }