XML DOM Node Toevoegen

Voorbeeld

Het volgende voorbeeld gebruikt XML-bestanden books.xml.

Functie loadXMLDoc()Geplaatst in extern JavaScript, gebruikt om XML-bestanden te laden.

Voeg een node toe achter de laatste subnode
In dit voorbeeld wordt de methode appendChild() gebruikt om een subnode toe te voegen aan een bestaande node.
Voeg een node in voor een specifieke subnode
In dit voorbeeld wordt de methode insertBefore() gebruikt om een node voor een specifieke subnode in te voegen.
Voeg een nieuwe eigenschap toe
In dit voorbeeld wordt de methode setAttribute() gebruikt om een nieuwe eigenschap toe te voegen.
Voeg gegevens toe aan een tekstnode
In dit voorbeeld wordt insertData() gebruikt om gegevens in een bestaande tekstnode in te voegen.

Node toevoegen - appendChild()

De methode appendChild() voegt een subnode toe aan bestaande nodes.

De nieuwe node wordt toegevoegd (gevoegd) achter elke bestaande subnode.

Note:Gebruik insertBefore() als de positie van de node belangrijk is.

De volgende codefragment maakt een element (<>edition<>), en voegt het toe achter de laatste subnode van het eerste <book> element:

xmlDoc=loadXMLDoc("books.xml");
newel=xmlDoc.createElement("edition");
x=xmlDoc.getElementsByTagName("book")[0];
x.appendChild(newel);

Example explanation:

  1. By using loadXMLDoc() Add "books.xmlLoad into xmlDoc
  2. Maak een nieuwe node <edition> aan.
  3. Plaats deze node achter het eerste <book> element.

TIY

Herhaal en voeg een element toe aan alle <book> elementen:TIY

Node invoegen - insertBefore()

De methode insertBefore() wordt gebruikt om een node voor een specifieke subnode in te voegen.

Dit is een nuttige methode wanneer de positie van de toegevoegde node belangrijk is.

xmlDoc=loadXMLDoc("books.xml");
newNode=xmlDoc.createElement("book");
x=xmlDoc.documentElement;
y=xmlDoc.getElementsByTagName("book")[3];
x.insertBefore(newNode,y);

Example explanation:

  1. By using loadXMLDoc() Add "books.xmlLoad into xmlDoc
  2. Maak een nieuwe elementnode <book> aan.
  3. Plaats deze node voor de laatste <book> elementnode.

TIY

Als de tweede parameter van insertBefore() null is, wordt de nieuwe node toegevoegd na de laatste bestaande subnode.

x.insertBefore(newNode,null) en x.appendChild(newNode) kunnen een nieuwe subnode toevoegen aan x.

Voeg een nieuwe eigenschap toe

De methode addAtribute() bestaat niet.

If the attribute does not exist, setAttribute() can create a new attribute:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('book');
x[0].setAttribute("edition","first");

Example explanation:

  1. By using loadXMLDoc() Add "books.xmlLoad into xmlDoc
  2. Set (create) the value of the "edition" attribute of the first <book> element to "first"

TIY

Note:If the attribute already exists, the setAttribute() method will overwrite the existing value.

Add text to a text node - insertData()

The insertData() method inserts data into an existing text node.

The insertData() method has two parameters:

  • offset - Where to start inserting characters (starting from 0)
  • string - The string to be inserted

The following code snippet will add "Easy" to the text node of the first <title> element in the loaded XML:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.insertData(0,"Hello ");

TIY