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);
|
試してください »
|
例の説明:
- loadXMLDoc() を用い、xmlDoc に "books.xml" をロードします
- 新規ノード <edition> を作成します
- 最初の <book> 要素にノードを追加します
ループして、全ての <book> 要素に要素を追加します:
試してください
ノードの挿入 - insertBefore()
insertBefore() メソッドは、指定した子ノードの前にノードを挿入するのに使用します。
追加するノードの位置が重要な時には、このメソッドが役立ちます:
例
xmlDoc=loadXMLDoc("books.xml");
newNode=xmlDoc.createElement("book");
x=xmlDoc.documentElement;
y=xmlDoc.getElementsByTagName("book")[3];
x.insertBefore(newNode,y);
|
試してください »
|
例の説明:
- loadXMLDoc()を用い、xmlDocに"books.xml"をロードします
- 新規要素ノード <book> を作成します
- 最後の <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");
|
試してください »
|
例の説明:
- loadXMLDoc() を用い、xmlDoc に "books.xml" をロードします
- 値 "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 ");
|
試してください »
|
|