XML DOM Delete Node

De removeChild() methode verwijdert de opgegeven knoop.

De removeAttribute() methode verwijdert de opgegeven eigenschap.

Voorbeeld

De volgende voorbeeld gebruikt een XML-bestand books.xml

Functie loadXMLDoc(),geplaatst in extern JavaScript, gebruikt voor het laden van XML-bestanden.

Verwijder elementknoop
In dit voorbeeld wordt removeChild() gebruikt om het eerste <book> element te verwijderen.
Verwijder huidige elementknoop
In dit voorbeeld wordt parentNode en removeChild() gebruikt om het huidige <book> element te verwijderen.
Tekstknooppunten verwijderen
In dit voorbeeld wordt removeChild() gebruikt om de tekstknoop van het eerste <title> element te verwijderen.
Tekst van tekstknoop leegmaken
In dit voorbeeld wordt de nodeValue() eigenschap gebruikt om de tekstknoop van het eerste <title> element leeg te maken.
Eigenschappen verwijderen op basis van naam
In dit voorbeeld wordt removeAttribute() gebruikt om de "category" eigenschap van het eerste <book> element te verwijderen.
Eigenschappen verwijderen op basis van object
In dit voorbeeld wordt removeAttributeNode() gebruikt om alle eigenschappen van het <book> element te verwijderen.

Verwijder elementknoop

De removeChild() methode verwijdert de opgegeven knoop.

Wanneer een knoop wordt verwijderd, worden ook alle subknopen verwijderd.

De volgende codefragment verwijdert de eerste <book> element uit het geladen xml:

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

Voorbeeld uitleg:

  • Door gebruik te maken van loadXMLDoc() Gebruik "books.xml"Laad xmlDoc in"
  • Stel de variabele y in op het elementknooppunt dat moet worden verwijderd
  • Verwijder elementknooppunten door gebruik te maken van de removeChild()-methode van de ouderknoop

TIY

Verwijder zelf - verwijder de huidige knoop

De removeChild()-methode is het enige method dat specifieke knopen kan verwijderen.

Wanneer je de knoop hebt gevonden die je wilt verwijderen, kun je deze verwijderen met behulp van de parentNode-eigenschap en de removeChild()-methode:

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

Voorbeeld uitleg:

  • Door gebruik te maken van loadXMLDoc() Gebruik "books.xml"Laad xmlDoc in"
  • Stel de variabele y in op het elementknooppunt dat moet worden verwijderd
  • Verwijder dit elementknooppunt door gebruik te maken van de parentNode-eigenschap en de removeChild()-methode

TIY

Tekstknooppunten verwijderen

De removeChild()-methode kan worden gebruikt om tekstknooppunten te verwijderen:

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

Voorbeeld uitleg:

  • Door gebruik te maken van loadXMLDoc() Gebruik "books.xml"Laad xmlDoc in"
  • Stel de variabele x in op de knoop van het eerste title-element
  • Stel de variabele y in op het tekstknooppunt dat moet worden verwijderd
  • Verwijder knopen door gebruik te maken van de removeChild()-methode van de ouderknoop

TIY

Niet zo vaak gebruikt removeChild() om tekst van een knoop te verwijderen. Je kunt de nodeValue-eigenschap gebruiken in plaats van dat. Zie het volgende deel.

Leegmaken van tekstknooppunten

De nodeValue-eigenschap kan worden gebruikt om de waarde van de tekstknooppunten te wijzigen of leeg te maken:

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

Voorbeeld uitleg:

  • Door gebruik te maken van loadXMLDoc() Gebruik "books.xml"Laad xmlDoc in"
  • Stel de variabele x in op de tekstknooppunt van het eerste title-element
  • Gebruik de nodeValue-eigenschap om de tekst van de tekstknooppunten leeg te maken

TIY

Herhaal en wijzig de tekstknooppunten van alle <title>-elementen: TIY

Eigenschapsknooppunten verwijderen op basis van de naam

De removeAttribute(name)-methode wordt gebruikt om eigenschapsknooppunten te verwijderen op basis van de naam.

Voorbeeld: removeAttribute('category')

De volgende codefragment verwijdert de "category"-eigenschap van het eerste <book>-element:

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

Voorbeeld uitleg:

  • Door gebruik te maken van loadXMLDoc() Gebruik "books.xml"Laad xmlDoc in"
  • Gebruik getElementsByTagName() om de book-knoop te verkrijgen
  • Verwijder de "category"-eigenschap van de eerste book-elementnode

TIY

Blaat alle "category"-eigenschappen van alle <book>-elementen af: TIY.

Eigenschapsnodes verwijderen op basis van objecten

De removeAttributeNode(node) methode verwijdert eigenschapsnodes door een Node-object als parameter te gebruiken.

Voorbeeld: removeAttributeNode(x)

Hieronder een codefragment dat alle eigenschappen van alle <book>-elementen verwijdert:

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);
  }
}

Voorbeeld uitleg:

  • Door gebruik te maken van loadXMLDoc() Gebruik "books.xml"Laad xmlDoc in"
  • Gebruik getElementsByTagName() om alle book-nodes te verkrijgen
  • Controleer of elk book-element een eigenschap heeft
  • Als er een eigenschap bestaat in een book-element, verwijder deze eigenschap

TIY