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> 要素を削除します:

例

xmlDoc=loadXMLDoc("books.xml");

y=xmlDoc.getElementsByTagName("book")[0];

xmlDoc.documentElement.removeChild(y);

試してみる »

例の説明:

  1. 使用してloadXMLDoc()を "" を xmlDoc に読み込みます
  2. 変数 y を削除する要素ノードに設定します
  3. removeChild() メソッドを使用して親ノードから要素ノードを削除します

自身を削除 - 現在のノードを削除

removeChild() メソッドは、指定されたノードを削除できる唯一のメソッドです。

削除するノードに移動したら、parentNode プロパティと removeChild() メソッドを使用してこのノードを削除できます:

例

xmlDoc=loadXMLDoc("books.xml");

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

x.parentNode.removeChild(x);

試してみる »

例の説明:

  1. 使用してloadXMLDoc()を "" を xmlDoc に読み込みます
  2. 変数 y を削除する要素ノードに設定します
  3. parentNode プロパティと removeChild() メソッドを使用してこの要素ノードを削除します

テキストノードの削除

removeChild() メソッドはテキストノードの削除に使用できます:

例

xmlDoc=loadXMLDoc("books.xml");

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

y=x.childNodes[0];
x.removeChild(y);

試してみる »

例の説明:

  1. 使用してloadXMLDoc()を "" を xmlDoc に読み込みます
  2. 変数 x を最初の title 要素ノードに設定します
  3. 変数 y を削除するテキストノードに設定します
  4. removeChild() メソッドを使用して親ノードから要素ノードを削除します

removeChild() を使用してノードからテキストを削除することはあまり一般的ではありません。代わりに nodeValue プロパティを使用できます。次の段落を参照してください。


テキストノードを空にする

nodeValue プロパティは、テキストノードの値を変更または空にするために使用できます:

例

xmlDoc=loadXMLDoc("books.xml");

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

試してみる »

例の説明:

  1. 使用してloadXMLDoc()を "" を xmlDoc に読み込みます
  2. 変数 x を最初の title 要素のテキストノードに設定します
  3. nodeValue プロパティを使用してテキストノードのテキストを空にします

すべての <title> 要素のテキストノードをループして変更します:


名前による属性ノードの削除

removeAttribute(name) メソッドは、名前を指定して属性ノードを削除するために使用されます。

例:removeAttribute('category')

次のコードスニペットは、最初の <book> 要素の "category" 属性を削除します:

例

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("book");
x[0].removeAttribute("category");

試してみる »

例の説明:

  1. 使用してloadXMLDoc()を "" を xmlDoc に読み込みます
  2. getElementsByTagName() を使用して book ノードを取得します
  3. 最初の book 要素ノードから "category" 属性を削除します

すべての <book> 要素の "category" 属性をループして削除します:


オブジェクトによる属性ノードの削除

removeAttributeNode(node) メソッドは、node オブジェクトをパラメータとして使用して属性ノードを削除します。

例: removeAttributeNode(x)

次のコードスニペットは、すべての <book> 要素のすべての属性を削除します:

例

xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book"); for (i=0;i<x.length;i++) { while (x[i].attributes.length>0) { attnode=x[i].attributes[0]; old_att=x[i].removeAttributeNode(attnode); } }

試してみる »

例の説明:

  1. 使用してloadXMLDoc()を "" を xmlDoc に読み込みます
  2. getElementsByTagName() を使用してすべての book ノードを取得します
  3. 各 book 要素に属性があるかどうかを確認します
  4. いずれかの book 要素に属性が存在する場合は、その属性を削除します

その他の拡張