documentElement->childNodes as $groupNode) { if ($groupNode->nodeType != XML_ELEMENT_NODE) { continue; } $groupName = $groupNode->attributes->getNamedItem('name')->nodeValue; /** @var DOMNode $groupAttributeNode */ foreach ($groupNode->childNodes as $groupAttributeNode) { if ($groupAttributeNode->nodeType != XML_ELEMENT_NODE) { continue; } $groupAttributeName = $groupAttributeNode->attributes->getNamedItem('name')->nodeValue; $result[$groupName][] = $groupAttributeName; } } return $result; } }