XML DOM tilføje knuder

Tilføj node - appendChild()

appendChild() Metoden tilføjer undernode til eksisterende node.

Ny node kan tilføjes (tilføjes) efter enhver eksisterende undernode.

Bemærk:Hvis node positionen er vigtig, brug insertBefore().

Dette stykke kode opretter et element (<edition>) og tilføjer det efter den sidste underelement af den første <book> element:

Eksempel 1

newEle = xmlDoc.createElement("edition");
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);

Prøv det selv

Eksempel på forklaring:

  1. Antag books.xml er blevet indlæst til xmlDoc i
  2. Opret ny knude <edition>
  3. Tilføj node til den første <book> element

Dette stykke kode har samme funktion som ovenstående, men den nye element har tilføjet en værdi:

Eksempel 2

newEle = xmlDoc.createElement("edition");
newText = xmlDoc.createTextNode("første udgave");
newEle.appendChild(newText);
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);

Prøv det selv

Eksempel på forklaring:

  1. Antag books.xml er blevet indlæst til xmlDoc i
  2. Opret ny knude <edition>
  3. Opret en ny tekstknude "første udgave"
  4. Tilføj denne tekstknude til <edition>-knuden
  5. Tilføj <edition>-knuden til <book>-elementet

Indsæt knude - insertBefore()

insertBefore() Metoden indsætter en knude før den angivne underknude.

Hvis placeringen af den tilføjede knude er vigtig, er denne metode meget nyttig:

Eksempel

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

Prøv det selv

Eksempel på forklaring:

  1. Antag books.xml er blevet indlæst til xmlDoc i
  2. Opret en ny elementknude <book>
  3. Sæt denne nye knude ind foran den sidste <book>-elementknude
  4. hvis den anden parameter til insertBefore() er null, vil den nye knude blive tilføjet efter den sidste eksisterende underknude.

x.insertBefore(newNode,null) og x.appendChild(newNode) kan tilføje nye underknuder til x.

Tilføj ny egenskab

setAttribute() metoden sætter egenskabens værdi.

hvis egenskaben ikke findes, setAttribute() kan oprette en ny egenskab:

Eksempel

xmlDoc.getElementsByTagName('book')[0].setAttribute("edition","første udgave");

Prøv det selv

Eksempel på forklaring:

  1. Antag books.xml er blevet indlæst til xmlDoc i
  2. Sæt værdien af "edition"-egenskaben for den første <book>-element til "første udgave"

Bemærk:Der findes ingen metode med navnet addAttribute(), hvis egenskaben ikke findes, vil setAttribute() oprette en ny egenskab. Hvis egenskaben allerede findes, vil setAttribute() metoden overskrive den eksisterende værdi.

Tilføj tekst til tekstknude - insertData()

insertData() Metoden indsætter data i den eksisterende tekstknude.

insertData() Metoden har to parametre:

  • offset Hvor starter du med at indsætte tegn (fra 0)
  • string - Den streng, der skal indsættes

Følgende kodefragment tilføjer "Jegs favorit" til den allerede indlæste XMLs første <title> elements tekstnode:

Eksempel

xmlDoc.getElementsByTagName("title")[0].childNodes[0].insertData(0,"Jegs favorit");

Prøv det selv