XML DOM Erstat Noder

replaceChild() Metoden erstatter den angivne node.

nodeValue Egenskaben erstatter teksten i tekstnoden.

Erstat elementnoden

replaceChild() Metoden bruges til at erstatte noder.

Følgende kodeafsnit erstatter den første <book>-element:

Eksempel

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.documentElement;
// Opret en book-element, en title-element og en tekstnode
newNode=xmlDoc.createElement("book");
newTitle=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("Et nyt bog");
// Tilføj tekstnoden til title-noden
newTitle.appendChild(newText);
// Tilføj denne title-node til book-noden
newNode.appendChild(newTitle);
y=xmlDoc.getElementsByTagName("book")[0];
// Erstat den første book-node med en ny node
x.replaceChild(newNode,y);

Prøv det selv

Eksempel på forklaring:

  1. Brug books.xml indlæst til xmlDoc i
  2. Opret en ny elementnode <book>
  3. Opret en ny elementnode <title>
  4. Opret en ny tekstnode, der indeholder teksten "Et nyt bog"
  5. Tilføj denne nye tekstnode til det nye elementnode <title>
  6. Tilføj dette nye elementnode <title> til det nye elementnode <book>
  7. Erstat den første <book>-elementnode med en ny <book>-elementnode

Erstat data i tekstnoden

replaceData() Metoden bruges til at erstatte data i tekstnoden.

replaceData() Metoden har tre parametre:

  • offset - Hvor langt fra begyndelsen af teksten, hvor erstatningen skal starte. Offset-værdien starter ved nul
  • length - Antal tegn, der skal erstattes
  • string - Streng, der skal indsættes

Eksempel

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.replaceData(0,4,"Et nyt bog");

Prøv det selv

Eksempel på forklaring:

  1. Brug books.xml indlæst til xmlDoc i
  2. Få den første <title> elementnodes tekstnode
  3. Brug replaceData() Metoden erstatter de første otte tegn i tekstnoden med "Et nyt bog"

Brug nodeValue-egenskaben i stedet for

Brug nodeValue Egenskaber gør det lettere at erstatte data i tekstnoden.

Følgende kodeafsnit vil erstatte teksten i den første <title>-elementets tekstnodeværdi med "Et nyt bog".

Eksempel

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue="en ny bog";

Prøv det selv

Eksempel på forklaring:

  1. Brug books.xml indlæst til xmlDoc i
  2. Få den første <title> elementnodes tekstnode
  3. Brug nodeValue Egenskaber til at ændre tekstnodens tekst

Du kan læse mere om at ændre noders værdi i kapitlet 'Ændre noder'.