XMLDOM削除ノード
removeChild()メソッドは、指定されたノードを削除します。
removeAttribute()メソッドは、指定された属性を削除します。
自分で試してみてください-例
例では、XMLファイルbooks.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);
説明された例:
- 「books.xml」がxmlDocにロードされているとします。
- 変数yを削除する要素ノードに設定します
- 親ノードからremoveChild()メソッドを使用して、要素ノードを削除します
自分自身を削除-現在のノードを削除
removeChild()メソッドは、指定されたノードを削除する唯一の方法です。
削除するノードに移動したら、parentNodeプロパティとremoveChild()メソッドを使用してそのノードを削除できます。
例
x = xmlDoc.getElementsByTagName("book")[0];
x.parentNode.removeChild(x);
説明された例:
- 「books.xml」がxmlDocにロードされているとします。
- 変数yを削除する要素ノードに設定します
- parentNodeプロパティとremoveChild()メソッドを使用して要素ノードを削除します
テキストノードを削除する
removeChild()メソッドを使用して、テキストノードを削除することもできます。
例
x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
x.removeChild(y);
説明された例:
- 「books.xml」がxmlDocにロードされているとします。
- 変数xを最初のタイトル要素ノードに設定します
- 変数yを削除するテキストノードに設定します
- 親ノードからremoveChild()メソッドを使用して、要素ノードを削除します
ノードからテキストを削除するためだけにremoveChild()を使用することはあまり一般的ではありません。代わりに、nodeValueプロパティを使用できます。次の段落を参照してください。
テキストノードをクリアする
nodeValueプロパティを使用して、テキストノードの値を変更できます。
例
xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue = "";
説明された例:
- 「books.xml」がxmlDocにロードされているとします。
- 最初のタイトル要素の最初の子ノードを取得します。
- nodeValueプロパティを使用して、テキストノードからテキストをクリアします
名前で属性ノードを削除する
removeAttribute( )メソッドは、その名前で属性ノードを削除します。
例:removeAttribute( 'category')
このコードは、最初の<book>要素の「category」属性を削除します。
例
x = xmlDoc.getElementsByTagName("book");
x[0].removeAttribute("category");
説明された例:
- 「books.xml」がxmlDocにロードされているとします。
- getElementsByTagName()を使用してブックノードを取得します
- 最初の本の要素ノードから「category」属性を削除します
ループして、すべての<book>要素の「category」属性を削除します。
オブジェクトによる属性ノードの削除
removeAttributeNode( )メソッドは、ノードオブジェクトをパラメーターとして使用して、属性ノードを削除します。
例:removeAttributeNode(x)
このコードは、すべての<book>要素のすべての属性を削除します。
例
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);
}
}
説明された例:
- 「books.xml」がxmlDocにロードされているとします。
- getElementsByTagName()を使用して、すべてのブックノードを取得します
- 本の要素ごとに、属性があるかどうかを確認します
- book要素に属性がありますが、属性を削除してください