The DOMNode::cloneNode() function is an inbuilt function in PHP which is used to create a copy of the node.
Syntax:
DOMNode DOMNode::cloneNode( bool $deep )
Parameters:This function accepts a single parameter $deep which indicates whether to copy all descendant nodes. This parameter is set to FALSE by default.
Return Value: This function returns the cloned node.
Program 1:
<?php // Create a DOMDocument $doc = new DOMDocument(); // Load XML $doc ->loadXML( '<html></html>' ); // Create an heading element on DOMDocument object $h1 = $doc ->createElement( 'h1' , "neveropen" ); // Append the child $doc ->documentElement->appendChild( $h1 ); // Create a new DOMDocument $doc_new = new DOMDocument(); // Deep clone the node to new instance $doc_new = $doc ->cloneNode(true); // Render the cloned instance echo $doc_new ->saveXML(); ?> |
Output:
Program 2:
<?php // Create a DOMDocument $doc = new DOMDocument( '1.0' , 'iso-8859-1' ); // Load XML $doc ->loadXML( '<html></html>' ); // Create an heading element on DOMDocument object $h1 = $doc ->createElement( 'h1' , "neveropen" ); // Append the child $doc ->documentElement->appendChild( $h1 ); // Shallow clone the node to a new instance // It will clone only the instance not its // children nodes $doc_new = $doc ->cloneNode(false); // Render the cloned instance echo $doc_new ->saveXML(); ?> |
Output: Press Ctrl + U to see the DOM
Reference: https://www.php.net/manual/en/domnode.clonenode.php