From baee5005dbb49d038f515004e2afe7e20683db6a Mon Sep 17 00:00:00 2001 From: Nav Date: Sun, 5 Jan 2025 23:49:43 +0000 Subject: [PATCH] Corrected bug in AtdfService --- .../Services/AtdfService.php | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/build/scripts/Targets/TargetDescriptionFiles/Services/AtdfService.php b/build/scripts/Targets/TargetDescriptionFiles/Services/AtdfService.php index 5052accc..9feec036 100644 --- a/build/scripts/Targets/TargetDescriptionFiles/Services/AtdfService.php +++ b/build/scripts/Targets/TargetDescriptionFiles/Services/AtdfService.php @@ -268,6 +268,20 @@ class AtdfService return $elements; } + private function getImmediateChildElements(DOMElement $element, string $name): array + { + $output = []; + foreach ($element->childNodes as $childNode) { + if (!$childNode instanceof DOMElement || $childNode->nodeName !== $name) { + continue; + } + + $output[] = $childNode; + } + + return $output; + } + private function getDeviceElementsFromXPath(string $expression, DOMDocument $document): DOMNodeList { return $this->getElementsFromXPath('devices/device[1]/' . $expression, $document); @@ -787,8 +801,8 @@ class AtdfService { $attributes = $this->getNodeAttributesByName($element); - $modeElements = $element->getElementsByTagName('mode'); - if ($modeElements->count() > 0) { + $modeElements = $this->getImmediateChildElements($element, 'mode'); + if (!empty($modeElements)) { $parentGroup = new RegisterGroup( isset($attributes['name']) ? strtolower($attributes['name']) : null, $attributes['name'] ?? null,