Aggiunta del Node XML DOM

Esempio

Esempio di file XML utilizzato di seguito books.xml.

Funzione loadXMLDoc()Posizionato all'esterno del JavaScript, utilizzato per caricare file XML.

Aggiungi un nodo dopo l'ultimo figlio.
Questo esempio utilizza il metodo appendChild() per aggiungere un figlio a un nodo esistente.
Aggiungi un nodo prima di un nodo figlio specificato
Questo esempio utilizza il metodo insertBefore() per inserire un nodo prima di un nodo figlio specificato.
Aggiungi una nuova proprietà
Questo esempio utilizza il metodo setAttribute() per aggiungere una nuova proprietà.
Aggiungi dati a un nodo di testo
Questo esempio utilizza insertData() per inserire dati in un nodo di testo esistente.

Aggiungi nodo - appendChild()

Il metodo appendChild() aggiunge un figlio al nodo esistente.

Il nuovo nodo verrà aggiunto (aggiunto) dopo qualsiasi figlio esistente.

Nota:Se la posizione del nodo è importante, utilizzare il metodo insertBefore().

Il seguente frammento di codice crea un elemento (<edition>) e lo aggiunge dopo l'ultimo figlio dell'elemento <book>.

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

Esempio di spiegazione:

  1. Utilizzando loadXMLDoc() Aggiungi "books.xmlCarica in xmlDoc
  2. Crea un nuovo nodo <edition>.
  3. Aggiungi questo nodo al primo elemento <book>.

TIY

Cicla e aggiungi un elemento a tutti gli elementi <book>:TIY

Inserisci nodo - insertBefore()

Il metodo insertBefore() viene utilizzato per inserire un nodo prima di un nodo figlio specificato.

Questo metodo è molto utile quando la posizione del nodo aggiunto è importante.

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

Esempio di spiegazione:

  1. Utilizzando loadXMLDoc() Aggiungi "books.xmlCarica in xmlDoc
  2. Crea un nuovo elemento <book>.
  3. Inserisci questo nodo prima dell'ultimo elemento <book>.

TIY

Se il secondo parametro di insertBefore() è null, il nuovo nodo verrà aggiunto dopo l'ultimo figlio esistente.

x.insertBefore(newNode,null) e x.appendChild(newNode) Possono tutti aggiungere un nuovo figlio a x.

Aggiungi una nuova proprietà

Il metodo addAtribute() non esiste.

Se l'attributo non esiste, setAttribute() può creare un nuovo attributo:

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

Esempio di spiegazione:

  1. Utilizzando loadXMLDoc() Aggiungi "books.xmlCarica in xmlDoc
  2. Imposta (crea) il valore dell'attributo "edition" del primo elemento <book> a "first"

TIY

Nota:Se l'attributo esiste, il metodo setAttribute() sovrascriverà il valore esistente.

Aggiungere testo al nodo di testo - insertData()

Il metodo insertData() inserisce dati in un nodo di testo esistente.

Il metodo insertData() ha due parametri:

  • offset - Dove iniziare l'inserimento di caratteri (partendo da 0)
  • string - La stringa da inserire

Il seguente frammento di codice aggiungerà "Easy" al testo del primo elemento <title> dell'XML caricato:

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

TIY