ホーム HTML CSS XML JAVASCRIPT   PHP SQL MORE...   リファレンス 事例集    

XML DOM ノードの追加

« 前章へ 次章へ »

以下の例は、XMLファイル books.xml を使用します。
外部JavaScriptの関数 loadXMLDoc() は、XMLファイルのロードに使用します。

最後の子ノードの後にノード追加
この例は、appendChild() を 用いて既存のノードに子ノードを追加します。

指定された子ノードの前にノード追加
この例は、insertBefore() を用いて指定した子ノードの前にノードを挿入します。

新規属性の追加
この例は、setAttribute() メソッドを用いて新規属性を追加します。

テキストノードへのデータ追加
この例は、insertData() を用いて既存のテキストノードにデータを挿入します。


ノードの追加 - appendChild()

appendChild() メソッドは、既存のノードに子ノードを追加します。

新規ノードは、既存の子ノードの後に追加(付加)されます。

注:ノードの位置が重要であれば、insertBefore() を使用してください。

以下のコードは、要素 (<edition>) を作成し、最初の <book> 要素の最後の子の後に追加します:

xmlDoc=loadXMLDoc("books.xml");

newel=xmlDoc.createElement("edition");

x=xmlDoc.getElementsByTagName("book")[0];
x.appendChild(newel);

試してください »

例の説明:

  1. loadXMLDoc() を用い、xmlDoc に "books.xml" をロードします
  2. 新規ノード <edition> を作成します
  3. 最初の <book> 要素にノードを追加します

ループして、全ての <book> 要素に要素を追加します: 試してください


ノードの挿入 - insertBefore()

insertBefore() メソッドは、指定した子ノードの前にノードを挿入するのに使用します。

追加するノードの位置が重要な時には、このメソッドが役立ちます:

xmlDoc=loadXMLDoc("books.xml");

newNode=xmlDoc.createElement("book");

x=xmlDoc.documentElement;
y=xmlDoc.getElementsByTagName("book")[3];

x.insertBefore(newNode,y);

試してください »

例の説明:

  1. loadXMLDoc()を用い、xmlDocに"books.xml"をロードします
  2. 新規要素ノード <book> を作成します
  3. 最後の <book> 要素ノードの前に、新規ノードを挿入します

もし insertBefore() の2番目のパラメータが null であれば、新規ノードは既存の最終の子ノードの後に追加されます。

x.insertBefore(newNode,null) および x.appendChild(newNode) の双方は、新しい子ノードを x に付加します。


新規属性の追加

addAtribute() と云う、メソッドはありません。

属性が存在しなければ、setAttribute() メソッドが新規属性を作成します:

xmlDoc=loadXMLDoc("books.xml");

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

試してください »

例の説明:

  1. loadXMLDoc() を用い、xmlDoc に "books.xml" をロードします
  2. 値 "first" を持つ属性 "edition" を最初の <book> 要素へ設定(作成)します

注: もしすでに属性が存在すれば、setAttribute() メソッドは既存の値を上書きします。


テキストノードへのテキスト追加 - insertData()

insertData() メソッドは、既存のテキストノードにデータを挿入します。

insertData() メソッドは、2つのパラメータを持っています:

  • オフセット - どの位置から文字挿入を開始するか( 先頭位置は 0)
  • 文字列 - 挿入する文字列

以下のコードは、ロードされたXMLの最初の <title> 要素のテキストノードに、"Easy"を 追加します:

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];

x.insertData(0,"Easy ");

試してください »

« 前章へ 次章へ »