XML DOM tilføje knudepunkter

Eksempel

Følgende eksempel bruger XML-filer books.xml.

Funktion loadXMLDoc()Liggende uden for JavaScript, brugt til at indlæse XML-filer.

Tilføj en node efter den sidste undernode
Dette eksempel bruger appendChild() metoden til at tilføje en undernode til en eksisterende node.
Tilføj en node før en specificeret undernode
Dette eksempel bruger insertBefore() metoden til at indsætte en node før en specificeret undernode.
Tilføj en ny egenskab
Dette eksempel bruger setAttribute() metoden til at tilføje en ny egenskab.
Tilføj data til en tekstnode
Dette eksempel bruger insertData() til at indsætte data i en eksisterende tekstnode.

Tilføj node - appendChild()

appendChild() metoden tilføjer en undernode til eksisterende node.

Den nye node tilføjes (tilføjes) efter alle eksisterende undernodes.

Bemærk:Brug insertBefore() metoden, hvis placeringen af noden er vigtig.

Følgende kodefragment opretter en element (<edition>) og tilføjer det til den sidste undernode af den første <book> element:

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

Eksempel forklaring:

  1. ved at bruge loadXMLDoc() "books.xmli xmlDoc
  2. Opret en ny node <edition>
  3. Tilføj denne node til den første <book> element

TIY

Gå i cirkel og tilføj en element til alle <book> elementer:TIY

Indsæt node - insertBefore()

insertBefore() metoden bruges til at indsætte en node før en specificeret undernode.

Dette metode er meget nyttig, når placeringen af den tilføjede node er vigtig.

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

Eksempel forklaring:

  1. ved at bruge loadXMLDoc() "books.xmli xmlDoc
  2. Opret en ny elementnode <book>
  3. Placer denne node før den sidste <book> elementnode

TIY

Hvis insertBefore() anden parameter er null, vil den nye node blive tilføjet efter den sidste eksisterende undernode.

x.insertBefore(newNode,null) og x.appendChild(newNode) kan alle tilføje en ny undernode til x.

Tilføj en ny egenskab

addAtribute() denne metoden eksisterer ikke.

Hvis egenskaben ikke eksisterer, kan setAttribute() oprette en ny egenskab:

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

Eksempel forklaring:

  1. ved at bruge loadXMLDoc() "books.xmli xmlDoc
  2. Sæt værdien af "edition"-egenskaben for den første <book>-element til (opret) "first"

TIY

Bemærk:Hvis egenskaben allerede eksisterer, vil setAttribute() metoden overskrive den eksisterende værdi.

Tilføj tekst til tekstknude - insertData()

insertData() metoden indsætter data i eksisterende tekstknuder.

insertData() metoden har to parametre:

  • offset - hvor der skal begynde at indsætte tegn ( starter ved 0)
  • string - den string, der skal indsættes

Følgende kodefragment tilføjer "Easy" til teksten i den første <title>-element i det indlæste XML:

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

TIY