XML DOM Supprimer les nœuds
La méthode removeChild() supprime un nœud spécifié.
La méthode removeAttribute() supprime un attribut spécifié.
Essayez-le vous-même - Exemples
Les exemples utilisent le fichier XML books.xml .
Cet exemple utilise removeChild() pour supprimer le premier élément <book>.
Cet exemple utilise parentNode et removeChild() pour supprimer l'élément <book> actuel.
Cet exemple utilise removeChild() pour supprimer le nœud de texte du premier élément <title>.
Cet exemple utilise la propriété nodeValue() pour effacer le nœud de texte du premier élément <title>.
Cet exemple utilise removeAttribute() pour supprimer l'attribut "category" du premier élément <book>.
Cet exemple utilise removeAttributeNode() pour supprimer tous les attributs de tous les éléments <book>.
Supprimer un nœud d'élément
La méthode removeChild() supprime un nœud spécifié.
Lorsqu'un nœud est supprimé, tous ses nœuds enfants sont également supprimés.
Ce code supprimera le premier élément <book> du xml chargé :
Exemple
y = xmlDoc.getElementsByTagName("book")[0];
xmlDoc.documentElement.removeChild(y);
Exemple expliqué :
- Supposons que " books.xml " soit chargé dans xmlDoc
- Définissez la variable y comme étant le nœud d'élément à supprimer
- Supprimez le nœud d'élément en utilisant la méthode removeChild() du nœud parent
Supprimer moi-même - Supprimer le nœud actuel
La méthode removeChild() est le seul moyen de supprimer un nœud spécifié.
Lorsque vous avez navigué jusqu'au nœud que vous souhaitez supprimer, il est possible de supprimer ce nœud à l'aide de la propriété parentNode et de la méthode removeChild() :
Exemple
x = xmlDoc.getElementsByTagName("book")[0];
x.parentNode.removeChild(x);
Exemple expliqué :
- Supposons que " books.xml " soit chargé dans xmlDoc
- Définissez la variable y comme étant le nœud d'élément à supprimer
- Supprimez le nœud d'élément à l'aide de la propriété parentNode et de la méthode removeChild()
Supprimer un nœud de texte
La méthode removeChild() peut également être utilisée pour supprimer un nœud de texte :
Exemple
x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
x.removeChild(y);
Exemple expliqué :
- Supposons que " books.xml " soit chargé dans xmlDoc
- Définissez la variable x comme étant le premier nœud d'élément de titre
- Définissez la variable y comme étant le nœud de texte à supprimer
- Supprimez le nœud d'élément en utilisant la méthode removeChild() du nœud parent
Il n'est pas très courant d'utiliser removeChild() uniquement pour supprimer le texte d'un nœud. La propriété nodeValue peut être utilisée à la place. Voir paragraphe suivant.
Effacer un nœud de texte
La propriété nodeValue peut être utilisée pour modifier la valeur d'un nœud de texte :
Exemple
xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue = "";
Exemple expliqué :
- Supposons que " books.xml " soit chargé dans xmlDoc
- Obtenez le premier nœud enfant du premier élément de titre.
- Utilisez la propriété nodeValue pour effacer le texte du nœud de texte
Supprimer un nœud d'attribut par nom
La méthode removeAttribute( ) supprime un nœud d'attribut par son nom.
Exemple : removeAttribute('category')
Ce code supprime l'attribut "category" dans le premier élément <book> :
Exemple
x = xmlDoc.getElementsByTagName("book");
x[0].removeAttribute("category");
Exemple expliqué :
- Supposons que " books.xml " soit chargé dans xmlDoc
- Utilisez getElementsByTagName() pour obtenir des nœuds de livre
- Supprimez l'attribut "category" du premier nœud d'élément de livre
Parcourez et supprimez l'attribut "category" de tous les éléments <book> :
Supprimer les nœuds d'attribut par objet
La méthode removeAttributeNode( ) supprime un nœud d'attribut, en utilisant l'objet nœud comme paramètre.
Exemple : removeAttributeNode(x)
Ce code supprime tous les attributs de tous les éléments <book> :
Exemple
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);
}
}
Exemple expliqué :
- Supposons que " books.xml " soit chargé dans xmlDoc
- Utilisez getElementsByTagName() pour obtenir tous les nœuds de livre
- Pour chaque élément du livre, vérifiez s'il existe des attributs
- Tant qu'il y a des attributs dans un élément de livre, supprimez l'attribut