XML DOM Delete Node
- Vorige pagina DOM Node wijzigen
- Volgende pagina DOM Node vervangen
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
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
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
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
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
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
- Vorige pagina DOM Node wijzigen
- Volgende pagina DOM Node vervangen