PHP 5.6.16 is available


(PHP 4 >= 4.1.0)

DomNode->clone_node Clones a node


domelement DomNode->clone_node ( void )


This function is currently not documented; only its argument list is available.

add a note add a note

User Contributed Notes 5 notes

sworley at dotster dot com
9 years ago
A complete, executable, minimal example of how to copy between documents:

= domxml_open_mem('<one><onething/></one>');
$doc2 = domxml_open_mem('<two><twothing/></two>');
$root1 = $doc1->document_element();
$root2 = $doc2->document_element();

Emits: <one><onething/><two><twothing/></two></one>
krymsonwulf at gmail dot com
9 years ago
It seems like this function is non-recursive: cloning a node will not clone it's child nodes in my experience
andrew at transitionmedia dot co dot uk
9 years ago
As of version 4.3 PHP doesn't support Appending a child from another source document. If you are trying to  import information from multiple sources into a final document [for transformation using XSL as an example] then you can have problems. This technique can be used to do it though.

I am assuming you have two documents open, $xmldoc1 and $xmldoc2 and you have selected [via XPath or explicit searching] the nodes you want in each document. Thus $xmldoc1_appending_node is the node you would like to add $xmldoc2_importnode to.


// first we create a temporary node within the document we want to add to.
$temp_importnode = $xmldoc1->create_element("import");

// now we have a node that is in the right document context we can clone the one we want into this one.
$temp_importnode = $xmldoc_importnode->clone_node(true);

// by using true in the above call to clone_node() we copy all of the child nodes as well. Use false or nothing if you just want the containing node with no children.



Now your document contains the new nodes imported from a different document.
hrz at geodata dot soton dot ac dot uk
10 years ago
Passing boolean 'true' as the argument to this function will result in all child nodes being cloned as well.
r dot kamstra at syntomax dot com
13 years ago
if a DomNode is duplicated it's siblings and parent are not duplicated
To Top