The DOMElement::setAttributeNodeNS() function is an inbuilt function in PHP which is used to add a new attribute node to element. This is just an alternative for setAttributeNode() function.
Syntax:
DOMAttr DOMElement::setAttributeNodeNS( DOMAttr $attr )
Parameters: This function accepts a single parameter $attr which holds the attribute to be added.
Return Value: This function returns the old node if the attribute has been replaced.
Exceptions: This function throws DOM_NO_MODIFICATION_ALLOWED_ERR, if the node is readonly.
Below examples illustrate the DOMElement::setAttributeNodeNS() function in PHP:
Example 1:
<?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();
?>
Output:
Example 2:
<?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;
?>
Output:
Before the addition of attributes: No of attributes => 1 After the addition of attributes: No of attributes => 2
Reference: https://www.php.net/manual/en/domelement.setattributenodens.php