DOM
Expand Minimize

cloneNode Method

Clones a new node.

var objXMLDOMNode = oXMLDOMNode.cloneNode(deep);

Parameters

deep

Boolean. A flag that indicates whether to recursively clone all nodes that are descendants of this node. If True, creates a clone of the complete tree below this node. If False, clones this node and its attributes only.

Return Value

Object. Returns the newly created clone node.

Example

The following script example clones a node, and then appends it as a child of the top-level node.

var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.6.0");
var root;
var currNode;
var MyNewNode;
xmlDoc.async = false;
xmlDoc.loadXML("<root><book/><AUTHOR/></root>")
if (xmlDoc.parseError.errorCode != 0) {
   var myErr = xmlDoc.parseError;
   WScript.Echo("You have error " + myErr.reason);
} else {
   root = xmlDoc.documentElement;
   currNode = root.childNodes.item(1);
   MyNewNode = currNode.cloneNode(true);
   root.appendChild(MyNewNode);
   WScript.Echo(xmlDoc.xml);
}

Output

<root><book/><AUTHOR/><AUTHOR/></root>

HRESULT cloneNode(
    VARIANT_BOOL deep,
    IXMLDOMNode **cloneRoot);

Parameters

deep[in]

A flag that indicates whether to recursively clone all nodes that are descendants of this node. If True, creates a clone of the complete tree below this node. If False, clones this node and its attributes only.

cloneRoot[out, retval]

A newly created clone node.

Return Values

S_OK

The value returned if successful.

E_INVALIDARG

The value returned if the cloneRoot parameter is Null.

The cloned node has the same property values as this node for the following properties: nodeName property, nodeValue property, nodeType property, parentNode property, ownerDocument property, and, if it is an element, attributes property. The value of the clone's childNodes property depends on the setting of the deep flag parameter.

Note Note

If the node is the DOMDocument node, it is safer to clone the document using the save method, as follows.

Implemented in: MSXML 3.0 and MSXML 6.0

Show:
© 2015 Microsoft