XMLDOMのノード値の変更
nodeValueプロパティは、ノード値を変更するために使用されます。
setAttribute()メソッドは、属性値を変更するために使用されます。
自分で試してみてください-例
以下の例では、XMLファイルbooks.xmlを使用しています。
この例では、nodeValueプロパティを使用して、「books.xml」の最初の<title>要素のテキストノードを変更します。
この例では、setAttribute()メソッドを使用して、最初の<book>の「category」属性の値を変更します。
この例では、nodeValueプロパティを使用して、最初の<book>の「category」属性の値を変更します。
要素の値を変更する
DOMでは、すべてがノードです。要素ノードにはテキスト値がありません。
要素ノードのテキスト値は子ノードに保存されます。このノードはテキストノードと呼ばれます。
要素のテキスト値を変更するには、要素のテキストノードの値を変更する必要があります。
テキストノードの値を変更する
nodeValueプロパティを使用して、テキストノードの値を変更できます。
「books.xml」がxmlDocにロードされているとします。
このコードは、最初の<title>要素のテキストノード値を変更します。
例
xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue = "new
content"
説明された例:
- 「books.xml」がxmlDocにロードされているとします。
- <title>要素の最初の子ノードを取得します
- ノード値を「新しいコンテンツ」に変更します
ループして、すべての<title>要素のテキストノードを変更します。
属性の値を変更する
DOMでは、属性はノードです。要素ノードとは異なり、属性ノードにはテキスト値があります。
属性の値を変更する方法は、そのテキスト値を変更することです。
これは、setAttribute()メソッドを使用するか、属性ノードのnodeValueプロパティを設定することで実行できます。
setAttribute()を使用して属性を変更する
setAttribute()メソッドは、属性の値を変更します。
属性が存在しない場合は、新しい属性が作成されます。
このコードは、<book>要素のcategory属性を変更します。
例
xmlDoc.getElementsByTagName("book")[0].setAttribute("category","food");
説明された例:
- 「books.xml」がxmlDocにロードされているとします。
- 最初の<book>要素を取得します
- 「category」属性値を「food」に変更します
すべての<title>要素をループして、新しい属性を追加します。
注:属性が存在しない場合は、新しい属性が作成されます(名前と値が指定されています)。
nodeValueを使用して属性を変更する
nodeValueプロパティは、属性ノードの値です。
valueプロパティを変更すると、属性の値が変更されます。
例
xmlDoc.getElementsByTagName("book")[0].getAttributeNode("category").nodeValue = "food";
説明された例:
- 「books.xml」がxmlDocにロードされているとします。
- 最初の<book>要素の「category」属性を取得します
- 属性ノードの値を「food」に変更します