XML DOM Knooppunten verwijderen
De methode removeChild() verwijdert een opgegeven knooppunt.
De methode removeAttribute() verwijdert een opgegeven kenmerk.
Probeer het zelf - Voorbeelden
De voorbeelden gebruiken het XML-bestand books.xml .
In dit voorbeeld wordt removeChild() gebruikt om het eerste <book>-element te verwijderen.
In dit voorbeeld worden parentNode en removeChild() gebruikt om het huidige <book>-element te verwijderen.
tekstknooppunt verwijderen In dit voorbeeld wordt removeChild() gebruikt om het tekstknooppunt van het eerste <title>-element te verwijderen.
In dit voorbeeld wordt de eigenschap nodeValue() gebruikt om het tekstknooppunt van het eerste <title>-element te wissen.
In dit voorbeeld wordt removeAttribute() gebruikt om het attribuut "category" uit het eerste <book>-element te verwijderen.
In dit voorbeeld wordt removeAttributeNode() gebruikt om alle attributen van alle <book>-elementen te verwijderen.
Een elementknooppunt verwijderen
De methode removeChild() verwijdert een opgegeven knooppunt.
Wanneer een knooppunt wordt verwijderd, worden ook alle onderliggende knooppunten verwijderd.
Deze code verwijdert het eerste <book> element uit de geladen xml:
Voorbeeld
y = xmlDoc.getElementsByTagName("book")[0];
xmlDoc.documentElement.removeChild(y);
Voorbeeld uitgelegd:
- Stel dat " books.xml " is geladen in xmlDoc
- Stel de variabele y in als het elementknooppunt dat moet worden verwijderd
- Verwijder het elementknooppunt met behulp van de methode removeChild() van het bovenliggende knooppunt
Mijzelf verwijderen - Het huidige knooppunt verwijderen
De methode removeChild() is de enige manier om een opgegeven knooppunt te verwijderen.
Wanneer u naar het knooppunt bent genavigeerd dat u wilt verwijderen, is het mogelijk om dat knooppunt te verwijderen met behulp van de eigenschap parentNode en de methode removeChild() :
Voorbeeld
x = xmlDoc.getElementsByTagName("book")[0];
x.parentNode.removeChild(x);
Voorbeeld uitgelegd:
- Stel dat " books.xml " is geladen in xmlDoc
- Stel de variabele y in als het elementknooppunt dat moet worden verwijderd
- Verwijder het elementknooppunt met behulp van de eigenschap parentNode en de methode removeChild()
Een tekstknooppunt verwijderen
De methode removeChild() kan ook worden gebruikt om een tekstknooppunt te verwijderen:
Voorbeeld
x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
x.removeChild(y);
Voorbeeld uitgelegd:
- Stel dat " books.xml " is geladen in xmlDoc
- Stel de variabele x in als het eerste knooppunt van het titelelement
- Stel de variabele y in als het tekstknooppunt dat moet worden verwijderd
- Verwijder het elementknooppunt met behulp van de methode removeChild() van het bovenliggende knooppunt
Het is niet erg gebruikelijk om removeChild() alleen te gebruiken om de tekst van een knooppunt te verwijderen. In plaats daarvan kan de eigenschap nodeValue worden gebruikt. Zie volgende paragraaf.
Een tekstknooppunt wissen
De eigenschap nodeValue kan worden gebruikt om de waarde van een tekstknooppunt te wijzigen:
Voorbeeld
xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue = "";
Voorbeeld uitgelegd:
- Stel dat " books.xml " is geladen in xmlDoc
- Haal het eerste onderliggende knooppunt van het eerste titelelement op.
- Gebruik de eigenschap nodeValue om de tekst van het tekstknooppunt te wissen
Een attribuutknooppunt op naam verwijderen
De methode removeAttribute( ) verwijdert een attribuutknooppunt op naam.
Voorbeeld: removeAttribute('category')
Deze code verwijdert het "category" attribuut in het eerste <book> element:
Voorbeeld
x = xmlDoc.getElementsByTagName("book");
x[0].removeAttribute("category");
Voorbeeld uitgelegd:
- Stel dat " books.xml " is geladen in xmlDoc
- Gebruik getElementsByTagName() om boekknooppunten te krijgen
- Verwijder het attribuut "category" van het eerste knooppunt van het boekelement
Loop door en verwijder het "category" attribuut van alle <book> elementen:
Attribuutknooppunten per object verwijderen
De methode removeAttributeNode( ) verwijdert een attribuutknooppunt, waarbij het knooppuntobject als parameter wordt gebruikt.
Voorbeeld: removeAttributeNode(x)
Deze code verwijdert alle attributen van alle <book> elementen:
Voorbeeld
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 uitgelegd:
- Stel dat " books.xml " is geladen in xmlDoc
- Gebruik getElementsByTagName() om alle boekknooppunten te krijgen
- Controleer voor elk boekelement of er attributen zijn
- Hoewel er attributen in een boekelement zijn, verwijdert u het attribuut