Suppression des nœuds XML DOM

La méthode removeChild() supprime le nœud spécifié.

La méthode removeAttribute() supprime l'attribut spécifié.

Exemple

Les exemples suivants utilisent le fichier XML books.xml

Fonction loadXMLDoc(),situé en JavaScript externe, utilisé pour charger le fichier XML.

Suppression d'un élément de nœud
Dans cet exemple, removeChild() est utilisé pour supprimer l'élément <book> premier.
Suppression de l'élément de nœud courant
Dans cet exemple, parentNode et removeChild() sont utilisés pour supprimer l'élément <book> courant.
Supprimer un nœud texte
Dans cet exemple, removeChild() est utilisé pour supprimer le nœud texte de l'élément <title> premier.
Vider le texte du nœud texte
Dans cet exemple, l'attribut nodeValue() est utilisé pour vider le nœud texte de l'élément <title> premier.
Suppression d'attributs selon le nom
Dans cet exemple, removeAttribute() est utilisé pour supprimer l'attribut "category" du premier élément <book>.
Suppression d'attributs selon l'objet
Dans cet exemple, removeAttributeNode() est utilisé pour supprimer toutes les attributs de l'élément <book>.

Suppression d'un élément de nœud

La méthode removeChild() supprime le nœud spécifié.

Lorsqu'un nœud est supprimé, tous ses nœuds enfants sont également supprimés.

Le fragment de code suivant supprime le premier élément <book> du xml chargé :

xmlDoc=loadXMLDoc("books.xml");
y=xmlDoc.getElementsByTagName("book")[0];
xmlDoc.documentElement.removeChild(y); 

Exemple d'explication :

  • En utilisant loadXMLDoc() Mettre "books.xml"Charger xmlDoc"
  • Définissez la variable y sur l'élément de nœud à supprimer
  • Supprimez un nœud élémentaire en utilisant la méthode removeChild() à partir du nœud parent

TIY

Supprimer soi-même - supprimer le nœud courant

La méthode removeChild() est la seule méthode qui peut supprimer un nœud spécifique.

Lorsque vous avez localisé le nœud à supprimer, vous pouvez supprimer ce nœud en utilisant l'attribut parentNode et la méthode removeChild() :

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0];
x.parentNode.removeChild(x); 

Exemple d'explication :

  • En utilisant loadXMLDoc() Mettre "books.xml"Charger xmlDoc"
  • Définissez la variable y sur l'élément de nœud à supprimer
  • Supprimez cet élément de nœud en utilisant l'attribut parentNode et la méthode removeChild()

TIY

Supprimer un nœud texte

La méthode removeChild() peut être utilisée pour supprimer un nœud texte :

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0];
y=x.childNodes[0];
x.removeChild(y); 

Exemple d'explication :

  • En utilisant loadXMLDoc() Mettre "books.xml"Charger xmlDoc"
  • Définissez la variable x sur le nœud de l'élément <title> premier
  • Définissez la variable y sur le nœud texte à supprimer
  • Supprimez un nœud en utilisant la méthode removeChild() à partir du nœud parent

TIY

Peu utilisé, removeChild() pour supprimer un texte de nœud. Vous pouvez utiliser l'attribut nodeValue à la place. Voir le paragraphe suivant.

Vider le nœud texte

L'attribut nodeValue peut être utilisé pour modifier ou vider la valeur du nœud texte :

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

Exemple d'explication :

  • En utilisant loadXMLDoc() Mettre "books.xml"Charger xmlDoc"
  • Définissez la variable x sur le nœud texte de l'élément <title> premier
  • Utilisez l'attribut nodeValue pour vider le texte du nœud texte

TIY

Parcourir et modifier le texte de tous les éléments <title> : TIY

Supprimer l'attribut de nœud selon le nom

La méthode removeAttribute(name) est utilisée pour supprimer l'attribut de nœud selon le nom.

Exemple : removeAttribute('category')

Le code suivant supprime l'attribut "category" du premier élément <book> :

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

Exemple d'explication :

  • En utilisant loadXMLDoc() Mettre "books.xml"Charger xmlDoc"
  • Utilisez getElementsByTagName() pour obtenir le nœud book
  • Supprimez la propriété "category" du premier nœud book élément

TIY

Parcourez et supprimez toutes les propriétés "category" des éléments <book> : TIY.

Suppression de nœud d'attribut en fonction de l'objet

La méthode removeAttributeNode(node) utilise un objet Node en tant que paramètre pour supprimer le nœud d'attribut.

Exemple : removeAttributeNode(x)

Le fragment de code suivant supprime toutes les propriétés des éléments <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);
  }
}

Exemple d'explication :

  • En utilisant loadXMLDoc() Mettre "books.xml"Charger xmlDoc"
  • Utilisez getElementsByTagName() pour obtenir tous les nœuds book
  • Vérifiez si chaque élément book possède un attribut
  • Si un attribut existe dans un élément book, supprimez cet attribut

TIY