XML DOM ノード値変更
nodeValue属性はノード値を変更するために使用されます。
setAttribute()メソッドは属性の値を変更するために使用されます。
例
以下の例ではXMLファイルを使用します books.xml
関数 loadXMLDoc()、外部JavaScriptに配置されており、XMLファイルをロードするために使用されます。
- 要素のテキストノードを変更する
- この例では、"books.xml"中の最初の<title>要素のテキストノードをnodeValue属性を使用して変更します。
- setAttributeを使用して属性の値を変更する
- この例では、最初の<book>の"category"属性の値を変更するためにsetAttribute()メソッドを使用します。
- nodeValueを使用して属性値を変更する
- この例では、最初の<book>の"category"属性の値を変更するためにnodeValue属性を使用します。
要素の値を変更する
DOMでは、各成分はノードです。要素ノードにはテキスト値がありません。
要素ノードのテキストは子ノードに保存されます。このノードはテキストノードと呼ばれます。
要素のテキストを変更する方法は、この子ノード(テキストノード)の値を変更することです。
テキストノードの値を変更する
nodeValue属性はテキストノードの値を変更するために使用できます。
以下のコードスニペットは最初の<title>要素のテキストノード値を変更します:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title")[0].childNodes[0]; x.nodeValue="Hello World";
例説明:
- 使用することで loadXMLDoc() " を変更しますbooks.xml" xmlDoc に読み込みます
- 最初の<title>要素のテキストノードを取得します
- このテキストノードのノード値を"Hello World"に変更します
すべての<title>要素のテキストノードを巡回し、変更します:TIY
属性の値を変更する
DOMでは、属性もノードです。要素ノードとは異なり、属性ノードにはテキスト値があります。
属性の値を変更する方法は、そのテキスト値を変更することです。
このタスクはsetAttribute()メソッドまたは属性ノードのnodeValue属性を使用して完了できます。
setAttribute()を使用して属性を変更する
setAttribute() メソッドは、既存の属性の値を設定したり、新しい属性を作成します。
以下のコードは <book> 元素の category 属性を変更します:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName('book'); x[0].setAttribute("category","child");
例説明:
- 使用することで loadXMLDoc() " を変更しますbooks.xml" xmlDoc に読み込みます
- 最初の <book> 元素を取得します
- "category" 属性の値を「child」に変更します
すべての <title> を巡回し、新しい属性を追加します:TIY
注:属性ノードが存在しない場合、新しい属性(指定された名前と値)を作成します。
nodeValue を使用して属性を変更します
nodeValue 属性を使用して属性ノードの値を変更できます:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book")[0] y=x.getAttributeNode("category"); y.nodeValue="child";
例説明:
- 使用することで loadXMLDoc() " を変更しますbooks.xml" xmlDoc に読み込みます
- 最初の <book> 元素の「category」属性を取得します
- 属性ノードの値を「child」に変更します