XML DOM ノードクローン

インスタンス

以下の例では、XMLファイルを使用 books.xml

関数 loadXMLDoc()、外部のJavaScriptでXMLファイルをロードするために使用されます。

ノードをコピーし、それを既存のノードに追加
この例では、cloneNode()を使用してノードをコピーし、それをXMLドキュメントのルートノードに追加します。

ノードのコピー

cloneNode() メソッドは指定されたノードのコピーを作成します。

cloneNode() メソッドにはパラメータがあります(trueまたはfalse)。このパラメータは、コピーされるノードが元のノードのすべての属性と子ノードを含むかどうかを示します。

以下のコードスニペットは、最初の <book> ノードをコピーし、ドキュメントのルートノードに追加します:

xmlDoc=loadXMLDoc("books.xml");
oldNode=xmlDoc.getElementsByTagName('book')[0];
newNode=oldNode.cloneNode(true);
xmlDoc.documentElement.appendChild(newNode);
//すべてのタイトルを出力
y=xmlDoc.getElementsByTagName("title");
for (i=0;i<y.length;i++)
{
document.write(y[i].childNodes[0].nodeValue);
document.write("<br />");
}

出力:

ハリー・ポッター
Everyday Italian
XQuery Kick Start
Learning XML
ハリー・ポッター

例解:

  1. 使用して loadXMLDoc() "books.xml" xmlDoc に読み込む
  2. コピーするノードを取得
  3. cloneNode メソッドを使用してノードを "newNode" にコピー
  4. 新しいノードに新しいノードを追加
  5. ドキュメント内のすべての book の title を出力

TIY