La función DOMElement::removeAttributeNode() es una función incorporada en PHP que se utiliza para eliminar atributos de elementos.
Sintaxis:
bool DOMElement::removeAttributeNode( DOMAttr $oldnode )
Parámetros: esta función acepta un solo parámetro $oldnode que contiene el atributo que se eliminará.
Valor de retorno: esta función devuelve VERDADERO en caso de éxito o FALSO en caso de error.
Excepciones: esta función arroja DOM_NO_MODIFICATION_ALLOWED_ERR, si el Node es de solo lectura y DOM_NOT_FOUND_ERROR si $oldnode no es un atributo del elemento.
Los siguientes programas ilustran la función DOMElement::removeAttributeNode() en PHP:
Programa 1:
<?php // Create a new DOMDocument $dom = new DOMDocument(); // Load the XML $dom->loadXML("<?xml version=\"1.0\"?> <root> <html> <h1 id=\"my_id\"> Geeksforgeeks </h1> <h2> Second heading </h2> </html> </root>"); // Get the elements $node = $dom->getElementsByTagName('h1')[0]; echo "Before the removal of attributes: <br>"; // Get the attribute name and value $attribute = $node->attributes->item(0); $attribute_name = $attribute->name; $attribute_value = $attribute->value; echo $attribute_name . ' => '; echo $attribute_value; // Get the attribute to remove $oldnode = $node->getAttributeNode('id'); // Remove the id attribute $node->removeAttributeNode($oldnode); echo "<br>After the removal of attributes: <br>"; // Get the attribute name and value $attribute = $node->attributes->item(0); $attribute_name = $attribute->name . ' => '; $attribute_value = $attribute->value; echo $attribute_name; echo $attribute_value; ?>
Producción:
Before the removal of attributes: id => my_id After the removal of attributes: => // Empty string means attribute is removed
Programa 2:
<?php // Create a new DOMDocument $dom = new DOMDocument(); // Load the XML $dom->loadXML("<?xml version=\"1.0\"?> <root> <html> <h1 id=\"my_id\" style=\"color:green;\" class=\"my_class\"> Geeksforgeeks </h1> <h2> Second heading </h2> </html> </root>"); // Get the elements $node = $dom->getElementsByTagName('h1')[0]; echo "Before the removal of attributes: <br>"; // Get the attribute to remove $oldnode = $node->getAttributeNode('id'); // Get the attribute count $attributeCount = $node->attributes->count(); echo 'No of attributes => ' . $attributeCount; // Remove the id attribute $node->removeAttributeNode($oldnode); echo "<br>After the removal of attributes: <br>"; // Get the attribute count $attributeCount = $node->attributes->count(); echo 'No of attributes => ' . $attributeCount; ?>
Producción:
Before the removal of attributes: No of attributes => 3 After the removal of attributes: No of attributes => 2
Referencia: https://www.php.net/manual/en/domelement.removeattributenode.php