XML DOM Knooppunten toevoegen
Probeer het zelf - Voorbeelden
De onderstaande voorbeelden gebruiken het XML-bestand books.xml .
In dit voorbeeld wordt appendChild() gebruikt om een onderliggend knooppunt aan een bestaand knooppunt toe te voegen.
In dit voorbeeld wordt insertBefore() gebruikt om een knooppunt in te voegen vóór een opgegeven onderliggend knooppunt.
In dit voorbeeld wordt de methode setAttribute() gebruikt om een nieuw kenmerk toe te voegen.
dit voorbeeld wordt insertData() gebruikt om gegevens in een bestaand tekstknooppunt in te voegen.
Een knooppunt toevoegen - appendChild()
De methode appendChild() voegt een onderliggend knooppunt toe aan een bestaand knooppunt.
Het nieuwe knooppunt wordt toegevoegd (toegevoegd) na eventuele bestaande onderliggende knooppunten.
Opmerking: Gebruik insertBefore() als de positie van het knooppunt belangrijk is.
Dit codefragment maakt een element (<edition>), en voegt het toe na het laatste onderliggende element van het eerste <book> element:
Voorbeeld
newEle = xmlDoc.createElement("edition");
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);
Voorbeeld uitgelegd:
- Stel dat " books.xml " is geladen in xmlDoc
- Maak een nieuw knooppunt <editie>
- Voeg het knooppunt toe aan het eerste <book> element
Dit codefragment doet hetzelfde als hierboven, maar het nieuwe element wordt toegevoegd met een waarde:
Voorbeeld
newEle = xmlDoc.createElement("edition");
newText=xmlDoc.createTextNode("first");
newEle.appendChild(newText);
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);
Voorbeeld uitgelegd:
- Stel dat " books.xml " is geladen in xmlDoc
- Maak een nieuw knooppunt <editie>
- Maak een nieuw tekstknooppunt "eerste"
- Voeg het tekstknooppunt toe aan het <edition>-knooppunt
- Voeg het knooppunt <addition> toe aan het element <book>
Een knooppunt invoegen - insertBefore()
De methode insertBefore() voegt een knooppunt in vóór een opgegeven onderliggende knooppunt.
Deze methode is handig wanneer de positie van het toegevoegde knooppunt belangrijk is:
Voorbeeld
newNode = xmlDoc.createElement("book");
x = xmlDoc.documentElement;
y = xmlDoc.getElementsByTagName("book")[3];
x.insertBefore(newNode,y);
Voorbeeld uitgelegd:
- Stel dat " books.xml " is geladen in xmlDoc
- Maak een nieuw elementknooppunt <boek>
- Voeg het nieuwe knooppunt in voor het laatste <boek> elementknooppunt
Als de tweede parameter van insertBefore() null is, wordt het nieuwe knooppunt toegevoegd na het laatste bestaande onderliggende knooppunt.
x.insertBefore(newNode,null) en x.appendChild(newNode) zullen beide een nieuwe onderliggende node aan x toevoegen.
Een nieuw kenmerk toevoegen
De methode setAttribute() stelt de waarde van een attribuut in.
Voorbeeld
xmlDoc.getElementsByTagName('book')[0].setAttribute("edition","first");
Voorbeeld uitgelegd:
- Stel dat " books.xml " is geladen in xmlDoc
- Stel de waarde van het attribuut "edition" in op "first" voor het eerste <book> element
Er is geen methode genaamd add Attribute()
De setAttribute() maakt een nieuw attribuut aan als het attribuut niet bestaat.
Opmerking: als het kenmerk al bestaat, overschrijft de methode setAttribute() de bestaande waarde.
Tekst toevoegen aan een tekstknooppunt - insertData()
De methode insertData() voegt gegevens in een bestaand tekstknooppunt in.
De methode insertData() heeft twee parameters:
- offset - Waar te beginnen met het invoegen van tekens (begint bij nul)
- string - De string die moet worden ingevoegd
Het volgende codefragment voegt "Easy" toe aan het tekstknooppunt van het eerste <title>-element van de geladen XML:
Voorbeeld
xmlDoc.getElementsByTagName("title")[0].childNodes[0].insertData(0,"Easy ");