Eliminazione dei Nodi XML DOM

Il metodo removeChild() elimina il nodo specificato.

Il metodo removeAttribute() elimina l'attributo specificato.

Esempio

Esempio di seguito utilizza il file XML books.xml.

Funzione loadXMLDoc(),posta all'esterno del JavaScript, utilizzata per caricare i file XML.

Eliminare l'elemento nodo
Questo esempio utilizza removeChild() per eliminare il primo elemento <book>.
Eliminare l'elemento nodo corrente
Questo esempio utilizza parentNode e removeChild() per eliminare l'elemento <book> corrente.
Eliminare il nodo di testo
Questo esempio utilizza removeChild() per eliminare il nodo di testo dell'elemento <title>.
Svuotare il testo del nodo di testo
Questo esempio utilizza l'attributo nodeValue() per svuotare il nodo di testo dell'elemento <title>.
Eliminare l'attributo in base al nome
Questo esempio utilizza removeAttribute() per eliminare l'attributo "category" dal primo elemento <book>.
Eliminare l'attributo in base all'oggetto
Questo esempio utilizza removeAttributeNode() per eliminare tutti gli attributi dell'elemento <book>.

Eliminare l'elemento nodo

Il metodo removeChild() elimina il nodo specificato.

Quando un nodo viene eliminato, tutti i suoi nodi figli vengono eliminati.

Il seguente frammento di codice eliminerà il primo elemento <book> dall'xml caricato:

xmlDoc=loadXMLDoc("books.xml");
y=xmlDoc.getElementsByTagName("book")[0];
xmlDoc.documentElement.removeChild(y); 

Esempio di spiegazione:

  • Utilizzando loadXMLDoc() Metti "books.xml" Carica xmlDoc
  • Impostare la variabile y come il nodo di elemento da eliminare
  • Eliminare il nodo di elemento utilizzando il metodo removeChild() dal nodo genitore

TIY

Eliminare se stessi - eliminare il nodo corrente

Il metodo removeChild() è l'unico metodo che può eliminare il nodo specificato.

Quando si è localizzati il nodo da eliminare, si può eliminare questo nodo utilizzando l'attributo parentNode e il metodo removeChild():

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0];
x.parentNode.removeChild(x); 

Esempio di spiegazione:

  • Utilizzando loadXMLDoc() Metti "books.xml" Carica xmlDoc
  • Impostare la variabile y come il nodo di elemento da eliminare
  • Eliminare questo nodo di elemento utilizzando l'attributo parentNode e il metodo removeChild()

TIY

Eliminare il nodo di testo

Il metodo removeChild() può essere utilizzato per eliminare il nodo di testo:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0];
y=x.childNodes[0];
x.removeChild(y); 

Esempio di spiegazione:

  • Utilizzando loadXMLDoc() Metti "books.xml" Carica xmlDoc
  • Impostare la variabile x come il nodo dell'elemento title
  • Impostare la variabile y come il nodo di testo da eliminare
  • Eliminare il nodo utilizzando il metodo removeChild() dal nodo genitore

TIY

Non molto utilizzato removeChild() per rimuovere il testo dal nodo. Può essere sostituito dall'attributo nodeValue. Vedi il paragrafo seguente.

Svuotare il nodo di testo

L'attributo nodeValue può essere utilizzato per modificare o svuotare il valore del nodo di testo:

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

Esempio di spiegazione:

  • Utilizzando loadXMLDoc() Metti "books.xml" Carica xmlDoc
  • Impostare la variabile x come il nodo di testo del primo elemento title
  • Utilizzare l'attributo nodeValue per svuotare il testo del nodo di testo

TIY

Eseguire un ciclo e modificare il testo del nodo di tutti gli elementi <title>: TIY

Eliminare il nodo attributo in base al nome

Il metodo removeAttribute(name) viene utilizzato per eliminare il nodo attributo in base al nome.

Esempio: removeAttribute('category')

Il seguente frammento di codice elimina l'attributo "category" dal primo elemento <book>:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book");
x[0].removeAttribute("category"); 

Esempio di spiegazione:

  • Utilizzando loadXMLDoc() Metti "books.xml" Carica xmlDoc
  • Utilizzare getElementsByTagName() per ottenere il nodo book
  • Elimina l'attributo "category" dal primo nodo dell'elemento book

TIY

Esegui una scansione e elimina tutte le proprietà "category" degli elementi <book>: TIY.

Elimina il nodo attributo in base all'oggetto

Il metodo removeAttributeNode(node) utilizza un oggetto Node come parametro per eliminare il nodo attributo.

Esempio: removeAttributeNode(x)

Il seguente frammento di codice elimina tutti gli attributi degli elementi <book>:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book");
for (i=0;i<x.length;i++)
{
while (x[i].attributes.length>0)
  {
  attnode=x[i].attributes[0];
  old_att=x[i].removeAttributeNode(attnode);
  }
}

Esempio di spiegazione:

  • Utilizzando loadXMLDoc() Metti "books.xml" Carica xmlDoc
  • Usa getElementsByTagName() per ottenere tutti i nodi book
  • Controlla se ogni elemento book ha un attributo
  • Se esiste un attributo nell'elemento book, rimuovere l'attributo

TIY