XML DOM Adding Nodes

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

Probeer het zelf

Voorbeeld uitleg:

  1. Aannemen books.xml is geladen in xmlDoc in
  2. Maak een nieuwe knoop <edition> aan
  3. 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);

Probeer het zelf

Voorbeeld uitleg:

  1. Aannemen books.xml is geladen in xmlDoc in
  2. Maak een nieuwe knoop <edition> aan
  3. Maak een nieuwe tekstknoop aan "eerste editie"
  4. Voeg deze tekstknoop toe aan de knoop <edition>
  5. 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);

Probeer het zelf

Voorbeeld uitleg:

  1. Aannemen books.xml is geladen in xmlDoc in
  2. Maak een nieuwe elementknoop <book> aan
  3. Voeg deze nieuwe knoop in voor de laatste <book> elementknoop
  4. 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");

Probeer het zelf

Voorbeeld uitleg:

  1. Aannemen books.xml is geladen in xmlDoc in
  2. 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");

Probeer het zelf