XML DOM Adding Nodes
- Vorige pagina DOM - Maak knopen aan
- Volgende pagina DOM - Kloon knopen
Voeg knooppunt toe - appendChild()
appendChild()
De methode voegt een kindknooppunt toe aan een bestaand knooppunt.
De nieuwe knoop kan worden toegevoegd (geannexeerd) na elk bestaand kindknooppunt.
Let op:Gebruik insertBefore() als de positie van het knooppunt belangrijk is.
Het volgende stuk code maakt een element (<edition>) aan en voegt het toe na het laatste kind van het eerste <book>-element:
Voorbeeld 1
newEle = xmlDoc.createElement("edition"); xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);
Voorbeeld uitleg:
- Aannemen books.xml is geladen in
xmlDoc
in - Maak een nieuwe knoop <edition> aan
- Voeg het knooppunt toe aan het eerste <book>-element
De werking van dit stuk code is hetzelfde als hierboven, maar de nieuwe element heeft een waarde toegevoegd:
Voorbeeld 2
newEle = xmlDoc.createElement("edition"); newText = xmlDoc.createTextNode("第一版"); newEle.appendChild(newText); xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);
Voorbeeld uitleg:
- Aannemen books.xml is geladen in
xmlDoc
in - Maak een nieuwe knoop <edition> aan
- Maak een nieuwe tekstknoop aan
"eerste editie"
- Voeg deze tekstknoop toe aan de knoop <edition>
- Voeg de knoop <edition> toe aan het element <book>
Invoegen van een knoop - insertBefore()
insertBefore()
De methode voegt een knoop in voor de specifieke subknoop.
Als de positie van de toegevoegde knoop belangrijk is, is deze methode zeer nuttig:
Voorbeeld
newNode = xmlDoc.createElement("book"); x = xmlDoc.documentElement; y = xmlDoc.getElementsByTagName("book")[3]; x.insertBefore(newNode,y);
Voorbeeld uitleg:
- Aannemen books.xml is geladen in
xmlDoc
in - Maak een nieuwe elementknoop <book> aan
- Voeg deze nieuwe knoop in voor de laatste <book> elementknoop
- Als de tweede parameter van insertBefore() null is, wordt de nieuwe knoop toegevoegd na de laatste bestaande subknop.
x.insertBefore(newNode,null) en x.appendChild(newNode) kunnen nieuwe subknooppunten aan x toevoegen.
Voeg een nieuwe eigenschap toe
setAttribute()
De methode stelt de waarde van de eigenschap in.
Als de eigenschap niet bestaat, setAttribute()
U kunt een nieuwe eigenschap creëren:
Voorbeeld
xmlDoc.getElementsByTagName('book')[0].setAttribute("edition","eerste editie");
Voorbeeld uitleg:
- Aannemen books.xml is geladen in
xmlDoc
in - Stel de waarde van de eigenschap "edition" van de eerste <book> element in op "eerste editie"
Let op:Er bestaat geen methode genaamd addAttribute(), als de eigenschap niet bestaat, zal setAttribute() een nieuwe eigenschap creëren. Als de eigenschap al bestaat, zal de methode setAttribute() de bestaande waarde overschrijven.
Voeg tekst toe aan de tekstknop - insertData()
insertData()
De methode voegt gegevens toe aan de bestaande tekstknopen.
insertData()
De methode heeft twee parameters:
- offset Van waar begint u tekens in te voegen (vanaf 0)
- string - De te inserteren string
Het volgende codefragment voegt "Mijn favoriete" toe aan de tekstnode van het eerste <title>-element van het geladen XML:
Voorbeeld
xmlDoc.getElementsByTagName("title")[0].childNodes[0].insertData(0,"Mijn favoriete");
- Vorige pagina DOM - Maak knopen aan
- Volgende pagina DOM - Kloon knopen