Flash Lite 2.x および 3.0 ヘルプ

cloneNode (XMLNode.cloneNode メソッド)

public cloneNode(deep:Boolean) : XMLNode

指定された XML オブジェクトと同じタイプ、名前、値、および属性を持つ新しい XML ノードを作成し、返します。deeptrue を設定すると、すべての子ノードのクローンが再帰的に作成されるため、元のオブジェクトのドキュメントツリーが正確に複製されます。

返されたノードのクローンは、クローン作成元のアイテムのツリーとは関連がなくなります。その結果、nextSiblingparentNode、および previousSibling の値はすべて null になります。deep パラメータが false の場合、または my_xml ノードに子ノードがない場合は、firstChildlastChild も 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>

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート