querySelectorAll('include[file]') as $includeNode) { $file = $includeNode->getAttribute('file'); try { $html = $this->loader->load($file); $includedDom = $this->parser->parseFile($html); $fragment = $dom->createDocumentFragment(); foreach ($includedDom->documentElement->childNodes as $child) { $fragment->appendChild($dom->importNode($child, true)); } $includeNode->parentNode?->replaceChild($fragment, $includeNode); } catch (\Throwable $e) { // Optional: Fehlerkommentar ins Template schreiben $error = $dom->createComment("Fehler beim Laden von '$file': " . $e->getMessage()); $includeNode->parentNode?->replaceChild($error, $includeNode); } } return $dom; } }