XML DOM Aggiungi nodi
Provalo tu stesso - Esempi
Gli esempi seguenti utilizzano il file XML books.xml .
Questo esempio utilizza appendChild() per aggiungere un nodo figlio a un nodo esistente.
Questo esempio utilizza insertBefore() per inserire un nodo prima di un nodo figlio specificato.
Questo esempio utilizza il metodo setAttribute() per aggiungere un nuovo attributo.
Questo esempio utilizza insertData() per inserire dati in un nodo di testo esistente.
Aggiungi un nodo - appendChild()
Il metodo appendChild() aggiunge un nodo figlio a un nodo esistente.
Il nuovo nodo viene aggiunto (aggiunto) dopo tutti i nodi figlio esistenti.
Nota: utilizzare insertBefore() se la posizione del nodo è importante.
Questo frammento di codice crea un elemento (<edizione>) e lo aggiunge dopo l'ultimo figlio del primo elemento <book>:
Esempio
newEle = xmlDoc.createElement("edition");
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);
Esempio spiegato:
- Supponiamo che " books.xml " sia caricato in xmlDoc
- Crea un nuovo nodo <edizione>
- Aggiungi il nodo al primo elemento <book>
Questo frammento di codice funziona come sopra, ma il nuovo elemento viene aggiunto con un valore:
Esempio
newEle = xmlDoc.createElement("edition");
newText=xmlDoc.createTextNode("first");
newEle.appendChild(newText);
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);
Esempio spiegato:
- Supponiamo che " books.xml " sia caricato in xmlDoc
- Crea un nuovo nodo <edizione>
- Crea un nuovo nodo di testo "primo"
- Aggiungi il nodo di testo al nodo <edizione>
- Aggiungi il nodo <addition> all'elemento <book>
Inserisci un nodo - insertBefore()
Il metodo insertBefore() inserisce un nodo prima di un nodo figlio specificato.
Questo metodo è utile quando la posizione del nodo aggiunto è importante:
Esempio
newNode = xmlDoc.createElement("book");
x = xmlDoc.documentElement;
y = xmlDoc.getElementsByTagName("book")[3];
x.insertBefore(newNode,y);
Esempio spiegato:
- Supponiamo che " books.xml " sia caricato in xmlDoc
- Crea un nuovo nodo elemento <libro>
- Inserisci il nuovo nodo davanti all'ultimo nodo dell'elemento <book>
Se il secondo parametro di insertBefore() è null, il nuovo nodo verrà aggiunto dopo l'ultimo nodo figlio esistente.
x.insertBefore(newNode,null) e x.appendChild(newNode) aggiungeranno entrambi un nuovo nodo figlio a x.
Aggiungi un nuovo attributo
Il metodo setAttribute() imposta il valore di un attributo.
Esempio
xmlDoc.getElementsByTagName('book')[0].setAttribute("edition","first");
Esempio spiegato:
- Supponiamo che " books.xml " sia stato caricato in xmlDoc
- Impostare il valore dell'attributo "edizione" su "first" per il primo elemento <book>
Non esiste un metodo chiamato add Attribute()
Il setAttribute() creerà un nuovo attributo se l'attributo non esiste.
Nota: se l'attributo esiste già, il metodo setAttribute() sovrascriverà il valore esistente.
Aggiungi testo a un nodo di testo - insertData()
Il metodo insertData() inserisce i dati in un nodo di testo esistente.
Il metodo insertData() ha due parametri:
- offset - Da dove iniziare a inserire i caratteri (inizia da zero)
- string - La stringa da inserire
Il seguente frammento di codice aggiungerà "Easy" al nodo di testo del primo elemento <title> dell'XML caricato:
Esempio
xmlDoc.getElementsByTagName("title")[0].childNodes[0].insertData(0,"Easy ");