XML DOMでのノード値の変更
nodeValue
属性はノード値を変更するために使用されます。
setAttribute()
このメソッドは属性値を変更するために使用されます。
要素の値を変更する
DOMでは、すべてがノードです。要素ノードにはテキスト値はありません。
要素ノードのテキスト値は子ノードに格納されます。このノードはテキストノードと呼ばれます。
要素のテキスト値を変更するには、要素のテキストノードの値を変更する必要があります。
テキストノードの値を変更
nodeValue
属性は変更テキストノードの値。
以下のコードは最初の<title>要素のテキストノード値を変更します:
例1
xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue = "潮菜天下"
例解:
- 仮定 books.xml に
xmlDoc
中 - <title>要素の最初の子ノードを取得します
- このテキストノードのノード値を"潮菜天下"に変更します。
例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","烹饪");
例解:
- 仮定 books.xml がロードされました
xmlDoc
中 - 最初の<book>要素を取得します
- "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 = "烹饪";
例解:
- 仮定 books.xml がロードされました
xmlDoc
中 - 最初の <book> 要素の「category」属性を取得する
- 属性ノードの値を「調理」に変更する