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"に変更します

TIY

すべての<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」に変更します

TIY

すべての <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」に変更します

TIY