XML DOMでのノード値の変更

nodeValue 属性はノード値を変更するために使用されます。

setAttribute() このメソッドは属性値を変更するために使用されます。

要素の値を変更する

DOMでは、すべてがノードです。要素ノードにはテキスト値はありません。

要素ノードのテキスト値は子ノードに格納されます。このノードはテキストノードと呼ばれます。

要素のテキスト値を変更するには、要素のテキストノードの値を変更する必要があります。

テキストノードの値を変更

nodeValue 属性は変更テキストノードの値

以下のコードは最初の<title>要素のテキストノード値を変更します:

例1

xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue = "潮菜天下"

自分で試してみてください

例解:

  1. 仮定 books.xmlxmlDoc
  2. <title>要素の最初の子ノードを取得します
  3. このテキストノードのノード値を"潮菜天下"に変更します。

例2

すべての<title>要素のテキストノードをループして変更します:

for (i = 0; i < x.length; i++) {
    x[i].childNodes[0].nodeValue = "已更改的文本";
}

自分で試してみてください

属性の値を変更

DOMでは、属性もノードです。要素ノードとは異なり、属性ノードにはテキスト値があります。

属性値を変更する方法は、そのテキスト値を変更することです。

を使用して変更できます。 setAttribute() メソッドまたは属性ノードの nodeValue このタスクを完了するために属性を使用します。

setAttribute()を使用して属性を変更します。

setAttribute() メソッド既存の属性の値を設定、または新しい属性を作成

setAttribute() 方法は属性の値を変更できます。属性が存在しない場合、新しい属性を作成します。

このコードは<book>要素のcategory属性を変更します:

例1

xmlDoc.getElementsByTagName("book")[0].setAttribute("category","烹饪");

自分で試してみてください

例解:

  1. 仮定 books.xml がロードされました xmlDoc
  2. 最初の<book>要素を取得します
  3. "category"属性の値を"烹饪"に変更します。

例2

すべての<title>要素をループして新しい属性を追加します:

x = xmlDoc.getElementsByTagName('title');
for (i = 0; i < x.length; i++) { 
    x[i].setAttribute("edition","第一版");    
}

自分で試してみてください

注意:その属性が存在しない場合、指定された名前と値を持つ新しい属性が作成されます()。

nodeValueを使用して属性を変更します。

nodeValue 属性は属性ノードの値

変更 nodeValue 属性の値を変更できます。

xmlDoc.getElementsByTagName("book")[0].getAttributeNode("category").nodeValue = "烹饪";

自分で試してみてください

例解:

  1. 仮定 books.xml がロードされました xmlDoc
  2. 最初の <book> 要素の「category」属性を取得する
  3. 属性ノードの値を「調理」に変更する