La función DOMElement::removeAttributeNS() es una función incorporada en PHP que se usa para eliminar el atributo con un nombre local específico en un espacio de nombres específico del elemento.
Sintaxis:
bool DOMElement::removeAttributeNS( string $namespaceURI, string $localName )
Parámetros: esta función acepta dos parámetros, como se mencionó anteriormente y se describe a continuación:
- $namespaceURI: Especifica la URI del espacio de nombres.
- $localName: Especifica el nombre local.
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 cuando el Node es de solo lectura.
Los siguientes ejemplos ilustran la función DOMElement::removeAttributeNS() en PHP:
Ejemplo 1:
<?php // Create a new DOMDocument $dom = new DOMDocument(); // Load the XML $dom->loadXML("<?xml version=\"1.0\"?> <root> <html xmlns:x=\"my_namespace\"> <x:h1 x:id=\"my_id\"> Geeksforgeeks </x:h1> <x:h2> Second heading </x:h2> </html> <html xmlns:y=\"another_namespace\"> <y:h1 id=\"my_new_id\"> Random text </y:h1> <y:h2> Another heading </y:h2> </html> </root>"); // Get the elements $nodes = $dom->getElementsByTagName('h1'); echo "Before the removal of attributes: <br>"; foreach ($nodes as $node) { // 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 . '<br>'; // Remove the id attribute $node->removeAttributeNS('my_namespace', 'id'); } echo "<br>After the removal of attributes: <br>"; foreach ($nodes as $node) { // 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 . '<br>'; } ?>
Producción:
Before the removal of attributes: id => my_id id => my_new_id After the removal of attributes: => // Empty string means attribute is removed id => my_new_id
Ejemplo 2:
<?php // Create a new DOMDocument $dom = new DOMDocument(); // Load the XML $dom->loadXML("<?xml version=\"1.0\"?> <root> <html xmlns:x=\"my_namespace\"> <x:h1 x:id=\"my_id\"> Geeksforgeeks </x:h1> <x:h2> Second heading </x:h2> </html> <html xmlns:y=\"another_namespace\"> <y:h1 y:id=\"my_new_id\" y:style=\"color: blue;\"> Random text </y:h1> <y:h2> Another heading </y:h2> </html> </root>"); // Get the elements $node = $dom->getElementsByTagName('h1')[1]; echo "Before the removal of attributes: <br>"; // Get the attribute count $attributeCount = $node->attributes->count(); echo 'No of attributes => ' . $attributeCount; // Remove the id attribute $node->removeAttributeNS('another_namespace', 'id'); 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 => 2 After the removal of attributes: No of attributes => 1
Referencia: https://www.php.net/manual/en/domelement.removeattributens.php