XMLDOMノードの置き換え

replaceChild() メソッドは指定されたノードを置き換えます

nodeValue 属性でテキストノード内のテキストを置き換えます

要素ノードを置き換えます

replaceChild() メソッドはノードを置き換えるために使用されます。

以下のコードスニペットは最初の <book> 要素を置き換えます:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.documentElement;
// book要素、title要素、テキストノードを作成します
newNode=xmlDoc.createElement("book");
newTitle=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("一本新书");
// テキストノードをtitleノードに追加します
newTitle.appendChild(newText);
// このtitleノードをbookノードに追加します
newNode.appendChild(newTitle);
y=xmlDoc.getElementsByTagName("book")[0];
// 新しいノードで最初のbookノードを置き換えます
x.replaceChild(newNode,y);

実際に試してみてください

例説明:

  1. books.xmlxmlDoc
  2. 新しい要素ノード <book> を作成します
  3. 新しい要素ノード <title> を作成します
  4. テキスト「一本新书」を含む新しいテキストノードを作成します
  5. 新しいテキストノードを新しい要素ノード <title> に追加します
  6. 新しい要素ノード <title> を新しい要素ノード <book> に追加します
  7. 最初の <book> 要素ノードを新しい <book> 要素ノードに置き換えます

テキストノード内のデータを置き換えます

replaceData() メソッドはテキストノード内のデータを置き換えるために使用されます。

replaceData() メソッドには3つのパラメータがあります:

  • offset - 文字の置き換え開始位置。オフセット値は0から始まります
  • length - 置き換える文字数
  • string - 插入する文字列

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.replaceData(0,4,"一本新书");

実際に試してみてください

例説明:

  1. books.xmlxmlDoc
  2. 最初の <title> ノードのテキストノードを取得します
  3. 使用 replaceData() メソッドはテキストノードの最初の8文字を「一本新书」に置き換えます。

nodeValue属性を使用して

使用 nodeValue 属性でテキストノード内のデータを置き換えやすくなります。

以下のコードスニペットは、最初の <title> 要素のテキストノード値を「一本新书」で置き換えます:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue="一本新书";

実際に試してみてください

例説明:

  1. books.xmlxmlDoc
  2. 最初の <title> ノードのテキストノードを取得します
  3. 使用 nodeValue 属性を使用してテキストノードのテキストを変更します

「ノードの変更」の章で、ノード値の変更に関する詳細な情報を読むことができます。