getElementsByTagName('group'); foreach ($groups as $group) { /** @var $group \DOMElement */ if (!$group->hasAttribute('id')) { throw new \InvalidArgumentException('Attribute "id" does not exist'); } foreach ($group->childNodes as $child) { if (!$child instanceof \DOMElement) { continue; } /** @var $group \DOMElement */ $output[$group->getAttribute('id')][$child->nodeName]['value'] = $child->nodeValue; if ($child->hasAttribute('tooltip')) { $output[$group->getAttribute('id')][$child->nodeName]['tooltip'] = $child->getAttribute('tooltip'); } } } return $output; } }