Lägg till XML DOM-noder

Lägg till nod - appendChild()

appendChild() Metoden lägger till barnnoden till den befintliga noden.

Den nya noden kan läggas till (läggas till) efter vilken som helst befintlig barnnod.

Observera:Använd insertBefore() om nodens position är viktig.

Följande kodsegment skapar ett element (<edition>) och lägger till det efter den sista barnnoden till den första <book>-elementet:

Exempel 1

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

Prova själv

Exempel på förklaring:

  1. Anta books.xml har laddats in till xmlDoc i
  2. Skapa en ny nod <edition>
  3. Lägg till noden till den första <book>-elementet

Följande kodsegment har samma funktion som ovan, men den nya elementet har lagts till ett värde:

Exempel 2

newEle = xmlDoc.createElement("edition");
newText = xmlDoc.createTextNode("第一版");
newEle.appendChild(newText);
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);

Prova själv

Exempel på förklaring:

  1. Anta books.xml har laddats in till xmlDoc i
  2. Skapa en ny nod <edition>
  3. Skapa en ny textnod "första upplagan"
  4. Lägg till denna textnod till <edition>-noden
  5. Lägg till <edition>-noden till <book>-elementet

Infoga nod - insertBefore()

insertBefore() Metoden lägger in en nod innan den angivna undernoden.

Detta är användbart om positionen för den tillagda noden är viktig:

Exempel

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

Prova själv

Exempel på förklaring:

  1. Anta books.xml har laddats in till xmlDoc i
  2. Skapa ett nytt element <book>
  3. Lägg till denna nya nod innan den sista <book>-elementnoden
  4. om den andra parametern till insertBefore() är null, läggs den nya noden till efter den sista befintliga undernoden.

x.insertBefore(newNode,null) och x.appendChild(newNode) kan lägga till nya undernoder till x.

Lägg till ny egenskap

setAttribute() metoden ställer in egenskapens värde.

om egenskapen inte finns, setAttribute() kan skapa en ny egenskap:

Exempel

xmlDoc.getElementsByTagName('book')[0].setAttribute("första upplagan","första upplagan");

Prova själv

Exempel på förklaring:

  1. Anta books.xml har laddats in till xmlDoc i
  2. Sätt värdet på "edition"-egenskapen för den första <book>-elementet till "första upplagan"

Observera:Det finns ingen metod med namnet addAttribute(), om egenskapen inte finns, skapar setAttribute() en ny egenskap. Om egenskapen redan finns, kommer setAttribute() -metoden att ersätta den befintliga värdet.

Lägg till text till textnoden - insertData()

insertData() Metoden lägger in data i den befintliga textnoden.

insertData() Metoden har två parametrar:

  • offset Från varje punkt börjar man infoga tecken (från 0)
  • string - Strängen som ska läggas till

Följande kodsnutt lägger till "min favorit" till den första <title> elementets textnod i laddad XML:

Exempel

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

Prova själv