La función DOMElement::setAttributeNodeNS() es una función incorporada en PHP que se usa para agregar un nuevo Node de atributo al elemento. Esta es solo una alternativa para la función setAttributeNode() .
Sintaxis:
DOMAttr DOMElement::setAttributeNodeNS( DOMAttr $attr )
Parámetros: esta función acepta un solo parámetro $attr que contiene el atributo que se agregará.
Valor devuelto: esta función devuelve el Node anterior si el atributo ha sido reemplazado.
Excepciones: esta función arroja DOM_NO_MODIFICATION_ALLOWED_ERR, si el Node es de solo lectura.
Los siguientes ejemplos ilustran la función DOMElement::setAttributeNodeNS() en PHP:
Ejemplo 1:
php
<?php // Create a new DOMDocument $dom = new DOMDocument(); // Create a element with a namespace $root = $dom->createElementNS("my_namepsace", "root"); // Create an element $node = $dom->createElement("div", "GeeksforGeeks"); // Append the child $dom->appendChild($root); // Add the node to the dom $newnode = $dom->appendChild($node); // Create a DOMAttr instance $attr = new DOMAttr('style', 'color: green; font-size: 100px;'); // Set the attribute $newnode->setAttributeNodeNS($attr); echo $dom->saveXML(); ?>
Salida: Ejemplo 2:
php
<?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 addition of attributes: <br>"; // Get the attribute count $attributeCount = $node->attributes->count(); echo 'No of attributes => ' . $attributeCount; // Create a DOMAttr instance $attr = new DOMAttr('class', 'value'); // Add the new attribute $node->setAttributeNodeNS($attr); echo "<br>After the addition of attributes: <br>"; // Get the attribute count $attributeCount = $node->attributes->count(); echo 'No of attributes => ' . $attributeCount; ?>
Producción:
Before the addition of attributes: No of attributes => 1 After the addition of attributes: No of attributes => 2
Referencia: https://www.php.net/manual/en/domelement.setattributenodens.php