getElementsByTagName('entity'); /** @var DOMNode $entity */ foreach ($entities as $entity) { $entityConfig = []; $attributes = []; /** @var DOMNode $entityAttribute */ foreach ($entity->getElementsByTagName('attribute') as $entityAttribute) { $attributeFields = []; foreach ($entityAttribute->getElementsByTagName('field') as $fieldData) { $locked = $fieldData->attributes->getNamedItem('locked')->nodeValue == "true" ? true : false; $attributeFields[$fieldData->attributes->getNamedItem( 'code' )->nodeValue] = [ 'code' => $fieldData->attributes->getNamedItem('code')->nodeValue, 'locked' => $locked, ]; } $attributes[$entityAttribute->attributes->getNamedItem('code')->nodeValue] = $attributeFields; } $entityConfig['attributes'] = $attributes; $output[$entity->attributes->getNamedItem('type')->nodeValue] = $entityConfig; } return $output; } }