XML DOM tilføje knudepunkter
- Forrige side DOM opretter noder
- Næste side DOM klonede noder
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:
- ved at bruge loadXMLDoc() "books.xmli xmlDoc
- Opret en ny node <edition>
- Tilføj denne node til den første <book> element
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:
- ved at bruge loadXMLDoc() "books.xmli xmlDoc
- Opret en ny elementnode <book>
- Placer denne node før den sidste <book> elementnode
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:
- ved at bruge loadXMLDoc() "books.xmli xmlDoc
- Sæt værdien af "edition"-egenskaben for den første <book>-element til (opret) "first"
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 ");
- Forrige side DOM opretter noder
- Næste side DOM klonede noder