XML DOM lägga till nod
- Föregående sida DOM-skapa noder
- Nästa sida DOM-klonade noder
Exempel
Följande exempel använder XML-filer books.xml.
Funktion loadXMLDoc()Ligger utanför JavaScript, används för att ladda XML-filer.
- Lägg till en nod efter den sista undernoden
- Detta exempel använder appendChild() metod för att lägga till en undernod till en redan existerande nod.
- Lägg till en nod före en specificerad undernod
- Detta exempel använder insertBefore() metod för att infoga en nod före en specificerad undernod.
- Lägg till en ny egenskap
- Detta exempel använder setAttribute() metod för att lägga till en ny egenskap.
- Lägg till data till en textnod
- Detta exempel använder insertData() för att infoga data i en redan existerande textnod.
Lägg till nod - appendChild()
appendChild() metoden lägger till en undernod till en redan existerande nod.
Den nya noden läggs till (lägger till) efter alla redan existerande undernoder.
Kommentar:Använd insertBefore() metod om positionen för noden är viktig.
Följande kodfragment skapar ett element (<edition>) och lägger till det till den sista undernoden efter det första <book>-elementet:
xmlDoc=loadXMLDoc("books.xml"); newel=xmlDoc.createElement("edition"); x=xmlDoc.getElementsByTagName("book")[0]; x.appendChild(newel);
Exempel förklaring:
- Genom att använda loadXMLDoc() Lägg till"books.xmlLadda xmlDoc
- Skapa en ny nod <edition>
- Lägg till denna nod till den första <book>-elementen
Loopa och lägg till en element till alla <book>-element:TIY
Infoga nod - insertBefore()
insertBefore() metoden används för att infoga en nod före en specificerad undernod.
Denna metod är mycket användbar när positionen för den tillagda noden är viktig.
xmlDoc=loadXMLDoc("books.xml"); newNode=xmlDoc.createElement("book"); x=xmlDoc.documentElement; y=xmlDoc.getElementsByTagName("book")[3]; x.insertBefore(newNode,y);
Exempel förklaring:
- Genom att använda loadXMLDoc() Lägg till"books.xmlLadda xmlDoc
- Skapa en ny elementnod <book>
- Lägg till denna nod före den sista <book>-elementnoden
Om den andra parametern till insertBefore() är null, läggs den nya noden till efter den sista redan existerande undernoden.
x.insertBefore(newNode,null) och x.appendChild(newNode) kan alla lägga till en ny undernod till x.
Lägg till en ny egenskap
addAtribute() metoden finns inte.
Om egenskapen inte finns, kan setAttribute() skapa en ny egenskap:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName('book'); x[0].setAttribute("edition","first");
Exempel förklaring:
- Genom att använda loadXMLDoc() Lägg till"books.xmlLadda xmlDoc
- Sätt värdet för "edition"-egenskapen för den första <book>-elementen till (skapa) "first"
Kommentar:Om egenskapen redan finns, kommer setAttribute() metoden att ersätta den befintliga värdet.
Lägg till text till textnod - insertData()
insertData() metoden lägger till data till en befintlig textnod.
insertData() metoden har två parametrar:
- offset - var i texten som insättningen börjar (börjar vid 0)
- string - den sträng som ska infogas
Följande kodsnutt kommer att lägga till "Easy" till den första <title>-elementets textnod i det laddade XML:et:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title")[0].childNodes[0]; x.insertData(0,"Hello ");
- Föregående sida DOM-skapa noder
- Nästa sida DOM-klonade noder