XML DOM ノード追加
- 前のページ DOM ノードの作成
- 次のページ DOM 克隆ノード
例
以下の例では、XML ファイルを使用しています。 books.xml。
関数 loadXMLDoc()外部 JavaScript 内に位置し、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() 「」books.xml「読み込む xmlDoc に」
- 新しいノード <edition> を作成します
- このノードを最初の <book> ノードに追加します
ループを回し、すべての <book> ノードに要素を追加します:TIY
ノードを挿入 - insertBefore()
insertBefore() メソッドは指定された子ノードの前にノードを挿入するために使用されます。
追加されるノードの位置が重要な場合、このメソッドは非常に有用です。
xmlDoc=loadXMLDoc("books.xml"); newNode=xmlDoc.createElement("book"); x=xmlDoc.documentElement; y=xmlDoc.getElementsByTagName("book")[3]; x.insertBefore(newNode,y);
例解:
- 使用することで loadXMLDoc() 「」books.xml「読み込む xmlDoc に」
- 新しい要素ノード <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() 「」books.xml「読み込む xmlDoc に」
- 最初の <book> 元素の "edition" 属性の値を(作成して)"first" に設定します:
注:属性が既に存在する場合、setAttribute() メソッドは既存の値をオーバーライドします。
テキストノードにテキストを追加 - insertData()
insertData() メソッドは、すでにあるテキストノードにデータを挿入します。
insertData() メソッドには 2 つのパラメータがあります:
- offset - 插入を開始する場所(0から始まる)
- string - 插入する文字列
以下のコードスライスは、読み込まれた XML の最初の <title> 元素のテキストノードに "Easy" を追加します:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title")[0].childNodes[0]; x.insertData(0,"Hello ");
- 前のページ DOM ノードの作成
- 次のページ DOM 克隆ノード