XML DOM ノードの作成

インスタンス

以下の例では、XMLファイルを使用します books.xml

関数 loadXMLDoc()外部JavaScriptに位置しており、XMLファイルをロードするために使用されます。

要素ノードを作成します
この例では、createElement()を使用して新しい要素ノードを作成し、appendChild()を使用してそのノードを追加します。
createAttributeを使用して属性ノードを作成します
この例では、createAttribute()を使用して新しい属性ノードを作成し、setAttributeNode()を使用してそのノードを要素に挿入します。
setAttributeを使用して属性ノードを作成します
この例では、setAttribute()を使用して新しい属性を作成します。
テキストノードの作成
この例では、createTextNode()を使用して新しいテキストノードを作成し、appendChild()を使用してそのテキストノードを要素に追加します。
CDATAセクションノードを作成します
この例では、createCDATAsection()を使用してCDATAセクションノードを作成し、appendChild()を使用して要素に追加します。
コメントノードの作成
この例では、createComment()を使用してcommentノードを作成し、appendChild()を使用して要素に追加します。

新しい要素ノードの作成

createElement() メソッドは新しい要素ノードを生成します:

xmlDoc=loadXMLDoc("books.xml");
newel=xmlDoc.createElement("edition");
x=xmlDoc.getElementsByTagName("book")[0];
x.appendChild(newel);

例説明:

  1. 使用することで loadXMLDoc() " をbooks.xml" xmlDoc に読み込む
  2. 新しい要素ノード <edition> を作成します
  3. 最初の <book> 要素にこの要素ノードを追加します

TIY

すべての <book> 要素に要素を追加します:TIY

新しい属性ノードの作成

createAttribute() は新しい属性ノードを作成するために使用されます:

xmlDoc=loadXMLDoc("books.xml");
newatt=xmlDoc.createAttribute("edition");
newatt.nodeValue="first";
x=xmlDoc.getElementsByTagName("title");
x[0].setAttributeNode(newatt); 

例説明:

  1. 使用することで loadXMLDoc() " をbooks.xml" xmlDoc に読み込む
  2. 新しい属性ノード "edition" を作成します
  3. 最初の <title> 要素にこの新しい属性ノードを追加します

TIY

すべての <title> 要素を巡回し、新しい属性ノードを追加します:TIY

注記:既に存在する属性がある場合、新しい属性で置き換わります。

setAttribute() メソッドを使用して属性を作成します

setAttribute() メソッドは属性が存在しない場合に新しい属性を作成できるので、このメソッドを使用して新しい属性を作成できます。

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('book');
x[0].setAttribute("edition","first");

例説明:

  1. 使用することで loadXMLDoc() " をbooks.xml" xmlDoc に読み込む
  2. 最初の <book> 要素に値が "first" の属性を設定(作成)します

TIY

すべての <title> 要素を巡回し、新しい属性を追加します:TIY

テキストノードの作成

createTextNode() メソッドは新しいテキストノードを生成します:

xmlDoc=loadXMLDoc("books.xml");
newel=xmlDoc.createElement("edition");
newtext=xmlDoc.createTextNode("first");
newel.appendChild(newtext);
x=xmlDoc.getElementsByTagName("book")[0];
x.appendChild(newel);

例説明:

  1. 使用することで loadXMLDoc() " をbooks.xml" xmlDoc に読み込む
  2. 新しい要素ノード <edition> を作成します
  3. テキストが "first" の新しいテキストノードを作成します
  4. この要素ノードに新しいテキストノードを追加します
  5. 最初の <book> 要素に新しい要素ノードを追加します

TIY

すべての <book> 要素にテキストノードを持つ新しい要素ノードを追加します:TIY

CDATA Section ノードの作成

createCDATASection() メソッドは新しい CDATA section ノードを生成します。

xmlDoc=loadXMLDoc("books.xml");
newCDATA=xmlDoc.createCDATASection("Special Offer & Book Sale");
x=xmlDoc.getElementsByTagName("book")[0];
x.appendChild(newCDATA);

例説明:

  1. 使用することで loadXMLDoc() " をbooks.xml" xmlDoc に読み込む
  2. 新しい CDATA section ノードを作成する
  3. 新しい CDATA section ノードを最初の <book> エレメントに追加する

TIY

すべての <book> エレメントに CDATA section を追加するループ:TIY

コメントノードの作成

createComment() メソッドは新しいコメントノードを作成します。

xmlDoc=loadXMLDoc("books.xml");
newComment=xmlDoc.createComment("Revised March 2008");
x=xmlDoc.getElementsByTagName("book")[0];
x.appendChild(newComment);

例説明:

  1. 使用することで loadXMLDoc() " をbooks.xml" xmlDoc に読み込む
  2. 新しいコメントノードを作成する
  3. 新しいコメントノードを最初の <book> エレメントに追加する

TIY

すべての <book> エレメントに comment ノードを追加するループ:TIY