Eliminazione dei Nodi XML DOM
- Pagina precedente Modifica del nodo DOM
- Pagina successiva Sostituzione del nodo 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
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()
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
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
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
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
- Pagina precedente Modifica del nodo DOM
- Pagina successiva Sostituzione del nodo DOM