Name

XML.cloneNode( ) Method — create a copy of a node

Availability

Flash 5

Synopsis

theNode.cloneNode(deep)

Arguments

deep

A Boolean indicating whether to recursively include theNode’s children in the clone operation. If true, clone the entire hierarchy starting at theNode. If false, clone only theNode itself (and its attributes, if it is an element node).

Returns

A duplicate of the theNode object, optionally including its subtree.

Description

The cloneNode( ) method creates and returns a copy of theNode, including all of theNode’s attributes and values if theNode is an element node. If deep is true, the returned copy includes the entire node hierarchy descending from theNode.

We often use cloneNode( ) to create a new node based on an existing template (which saves us from generating the new node structure manually). Once we’ve cloned a node, we normally customize it and insert it into an existing XML document using either appendChild( ) or insertBefore( ). The following example clones the first paragraph of a document to make a sibling paragraph with the same structure:

// Create a new document
myDoc = new XML('<P>paragraph 1</P>');

// Make a clone of the first paragraph
newP = myDoc.firstChild.cloneNode(true);

// Customize the clone
newP.firstChild.nodeValue = "paragraph 2";

// Add the clone into the document
myDoc.appendChild(newP);

trace(myDoc);  // Displays: "<P>paragraph 1</P><P>paragraph 2</P>"

Note that the text in an element is stored in a separate child node of that element, so we ...

Get ActionScript: The Definitive Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.