XML DOM replaceChild() メソッド
定義と用法
replaceChild() メソッドは、特定の子ノードを他のノードで置き換えます。
成功すると、该方法は置き換えたノードを返します。失敗すると null を返します。
文法:
elementNode.replaceChild(new_node,old_node)
パラメータ | 説明 |
---|---|
new_node | 必須。新しいノードを指定します。 |
old_node | 必須。置き換える子ノードを指定します。 |
例
すべての例では、XML ファイルを使用します books.xml、および JavaScript 関数 loadXMLDoc()。
以下のコードスニペットは "books.xml" に最初の <book> 要素の最初の <title> 要素を置き換えます:
//最初の子供ノードが要素ノードか確認します
function get_firstchild(n)
{
x=n.firstChild;
while (x.nodeType!=1)
{
x=x.nextSibling;
}
return x;
}
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0];
//タイトル要素とテキストノードの作成
newNode=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("Giada's Family Dinners");
//テキストノードをタイトルノードに追加します。
newNode.appendChild(newText);
//最後のノードを新しいノードで置き換える
x.replaceChild(newNode,get_firstchild(x));
y=xmlDoc.getElementsByTagName("title");
for (i=0;i<y.length;i++)
{
document.write(y[i].childNodes[0].nodeValue);
document.write("<br />");
}
出力:
Giada's Family Dinners ハリー・ポッター XQuery Kick Start Learning XML
注釈:Internet Explorerは、ノード間に生成された空白テキストノード(例えば、改行シンボル)を無視しますが、Mozillaはそうしません。したがって、上記の例では、正しい子要素を作成するための関数を作成しました。
ヒント:IEとMozillaブラウザの違いに関するさらに詳細な情報が必要な場合は、CodeW3C.comのXML DOMガイドを訪れてください。 DOM ブラウザ このセクション。