'; $dom = DomWrapper::fromString($html); echo "Original HTML: " . $dom->document->saveHTML() . "\n\n"; // Find all x-* elements $xComponents = []; $allElements = $dom->document->getElementsByTagName('*'); foreach ($allElements as $element) { if ($element instanceof \Dom\HTMLElement && str_starts_with(strtolower($element->tagName), 'x-')) { $xComponents[] = $element; echo "Found: {$element->tagName}\n"; } } echo "\nTotal found: " . count($xComponents) . "\n\n"; // Now replace them echo "=== Replacing elements ===\n"; foreach ($xComponents as $i => $element) { echo "Replacing element #{$i}: {$element->tagName}\n"; $replacement = '
Replaced
'; try { // Check if element still has a parent (might be removed if it was a child) if ($element->parentNode === null) { echo " → Element has no parent! Skipping.\n"; continue; } $dom->replaceElementWithHtml($element, $replacement); echo " → Successfully replaced\n"; } catch (\Throwable $e) { echo " → ERROR: " . $e->getMessage() . "\n"; } } echo "\n=== Final HTML ===\n"; echo $dom->document->saveHTML() . "\n";