public cloneNode(deep:Boolean) : XMLNode
指定された XML オブジェクトと同じタイプ、名前、値、および属性を持つ新しい XML ノードを作成し、返します。deep に true を設定すると、すべての子ノードのクローンが再帰的に作成されるため、元のオブジェクトのドキュメントツリーが正確に複製されます。
返されたノードのクローンは、クローン作成元のアイテムのツリーとは関連がなくなります。その結果、nextSibling、parentNode、および previousSibling の値はすべて null になります。deep パラメータが false の場合、または my_xml ノードに子ノードがない場合は、firstChild と lastChild も null です。
deep:Boolean - ブール値。true に設定した場合、指定された XML オブジェクトの子のクローンが再帰的に作成されます。
XMLNode - XMLNode オブジェクト。
次の例では、XML.cloneNode() メソッドを使用してノードのコピーを作成する方法を示します。
// 新しい XML ドキュメントを作成します。
var doc:XML = new XML();
// ルートノードを作成します
var rootNode:XMLNode = doc.createElement("rootNode");
// 3 つの子ノードを作成します
var oldest:XMLNode = doc.createElement("oldest");
var middle:XMLNode = doc.createElement("middle");
var youngest:XMLNode = doc.createElement("youngest");
// XML ドキュメントツリーのルートとして rootNode を追加します
doc.appendChild(rootNode);
// それぞれの子ノードを rootNode の子として追加します
rootNode.appendChild(oldest);
rootNode.appendChild(middle);
rootNode.appendChild(youngest);
// cloneNode() を使用して middle ノードのコピーを作成します
var middle2:XMLNode = middle.cloneNode(false);
// rootNode の middle ノードと youngest ノードの間にクローンノードを挿入します
rootNode.insertBefore(middle2, youngest);
trace(rootNode);
// 出力 (改行が追加されています):
// <rootNode>
// <oldest />
// <middle />
// <middle />
// <youngest />
// </rootNode>
// ディープコピーを実際に試すため、cloneNode() を使用して rootNode のコピーを作成します
var rootClone:XMLNode = rootNode.cloneNode(true);
// すべての子ノードを含むクローンを rootNode に挿入します
rootNode.appendChild(rootClone);
trace(rootNode);
// 出力 (改行が追加されています):
// <rootNode>
// <oldest />
// <middle />
// <middle />
// <youngest />
// <rootNode>
// <oldest />
// <middle />
// <middle />
// <youngest />
// </rootNode>
// </rootNode>
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート