getelementsbytagnamens - php dom get element by id
¿Cómo eliminar elementos con DOMDocument? (3)
Elimine el nodo diciendo al nodo padre que elimine al niño:
$href->parentNode->removeChild($href);
Ver DOMNode::$parentNodeDocs y DOMNode::removeChild()Docs .
Ver también:
¿Es posible eliminar un elemento del DOM
cargado sin crear uno nuevo? Por ejemplo algo como esto:
$dom = new DOMDocument(''1.0'', ''utf-8'');
$dom->loadHTML($html);
foreach($dom->getElementsByTagName(''a'') as $href)
if($href->nodeValue == ''First'')
//delete
Esto me tomó un tiempo averiguarlo, así que aquí hay una aclaración:
Si está eliminando elementos de un bucle (como en el ejemplo de OP), debe realizar un ciclo hacia atrás
$elements = $completePage->getElementsByTagName(''a'');
for ($i = $elements->length; --$i >= 0; ) {
$href = $elements->item($i);
$href->parentNode->removeChild($href);
}
Documentación de DOMNodeList : puede modificar, e incluso eliminar, nodos desde un DOMNodeList si itera hacia atrás
Fácilmente:
$href->parentNode->removeChild($href);