XML DOM ノードの削除
removeChild() メソッドは指定されたノードを削除します。
removeAttribute() メソッドは指定された属性を削除します。
試してみる - 例
以下の例では XML ファイルを使用します。
関数loadXMLDoc()は外部 JavaScript 内にあり、XML ファイルの読み込みに使用されます。
この例では、removeChild() を使用して最初の <book> 要素を削除します。
この例では、parentNode と removeChild() を使用して現在の <book> 要素を削除します。
この例では、removeChild() を使用して最初の <title> 要素のテキストノードを削除します。
この例では、nodeValue() プロパティを使用して最初の <title> 要素のテキストノードを空にします。
この例では、removeAttribute() を使用して最初の <book> 要素から "category" 属性を削除します。
この例では、removeAttributeNode() を使用してすべての <book> 要素からすべての属性を削除します。
要素ノードの削除
removeChild() メソッドは指定されたノードを削除します。
ノードが削除されると、そのすべての子ノードも削除されます。
次のコードスニペットは、読み込まれた xml から最初の <book> 要素を削除します:
例
y=xmlDoc.getElementsByTagName("book")[0];
xmlDoc.documentElement.removeChild(y);
試してみる »
例の説明:
- 使用してloadXMLDoc()を "" を xmlDoc に読み込みます
- 変数 y を削除する要素ノードに設定します
- removeChild() メソッドを使用して親ノードから要素ノードを削除します
自身を削除 - 現在のノードを削除
removeChild() メソッドは、指定されたノードを削除できる唯一のメソッドです。
削除するノードに移動したら、parentNode プロパティと removeChild() メソッドを使用してこのノードを削除できます:
例
x=xmlDoc.getElementsByTagName("book")[0];
x.parentNode.removeChild(x);
試してみる »
例の説明:
- 使用してloadXMLDoc()を "" を xmlDoc に読み込みます
- 変数 y を削除する要素ノードに設定します
- parentNode プロパティと removeChild() メソッドを使用してこの要素ノードを削除します
テキストノードの削除
removeChild() メソッドはテキストノードの削除に使用できます:
例
x=xmlDoc.getElementsByTagName("title")[0];
y=x.childNodes[0];
x.removeChild(y);
試してみる »
例の説明:
- 使用してloadXMLDoc()を "" を xmlDoc に読み込みます
- 変数 x を最初の title 要素ノードに設定します
- 変数 y を削除するテキストノードに設定します
- removeChild() メソッドを使用して親ノードから要素ノードを削除します
removeChild() を使用してノードからテキストを削除することはあまり一般的ではありません。代わりに nodeValue プロパティを使用できます。次の段落を参照してください。
テキストノードを空にする
nodeValue プロパティは、テキストノードの値を変更または空にするために使用できます:
例
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue="";
試してみる »
例の説明:
- 使用してloadXMLDoc()を "" を xmlDoc に読み込みます
- 変数 x を最初の title 要素のテキストノードに設定します
- nodeValue プロパティを使用してテキストノードのテキストを空にします
すべての <title> 要素のテキストノードをループして変更します:
名前による属性ノードの削除
removeAttribute(name) メソッドは、名前を指定して属性ノードを削除するために使用されます。
例:removeAttribute('category')
次のコードスニペットは、最初の <book> 要素の "category" 属性を削除します:
例
x=xmlDoc.getElementsByTagName("book");
x[0].removeAttribute("category");
試してみる »
例の説明:
- 使用してloadXMLDoc()を "" を xmlDoc に読み込みます
- getElementsByTagName() を使用して book ノードを取得します
- 最初の book 要素ノードから "category" 属性を削除します
すべての <book> 要素の "category" 属性をループして削除します:
オブジェクトによる属性ノードの削除
removeAttributeNode(node) メソッドは、node オブジェクトをパラメータとして使用して属性ノードを削除します。
例: removeAttributeNode(x)
次のコードスニペットは、すべての <book> 要素のすべての属性を削除します:
例
試してみる »
例の説明:
- 使用してloadXMLDoc()を "" を xmlDoc に読み込みます
- getElementsByTagName() を使用してすべての book ノードを取得します
- 各 book 要素に属性があるかどうかを確認します
- いずれかの book 要素に属性が存在する場合は、その属性を削除します
その他の拡張