Metodo insertBefore() del XML DOM
Definizione e uso
Il metodo insertBefore() inserisce un nuovo nodo figlio prima dell'attuale nodo figlio.
Questa metodo restituisce il nuovo nodo figlio.
Sintassi:
elementNode.insertBefore(new_node,existing_node)
Parametro | Descrizione |
---|---|
new_node | Obbligatorio. Nodo da inserire. |
existing_node | Obbligatorio. Nodo esistente. Inserisci un nuovo nodo prima di questo nodo. |
Suggerimenti e note:
Nota:Internet Explorer ignora i nodi di testo vuoti generati tra i nodi (ad esempio, i caratteri di newline), mentre Mozilla non lo fa. Pertanto, nell'esempio seguente, utilizziamo una funzione per verificare il tipo di nodo dell'ultimo figlio.
Il tipo di nodo dell'elemento è 1, quindi se l'ultimo figlio non è un nodo elemento, si sposta al nodo precedente e verifica se questo nodo è un nodo elemento. Questo processo continua fino a trovare l'ultimo figlio che è un nodo elemento. Con questo metodo, si ottiene il risultato corretto sia in Internet Explorer che in Mozilla.
Per ulteriori informazioni sulle differenze tra IE e Mozilla Browser, visitare la guida XML DOM su CodeW3C.com Browser DOM Questa sezione.
Esempio
In tutti gli esempi, utilizzeremo il file XML books.xmle la funzione JavaScript loadXMLDoc()。
Il seguente frammento di codice crea un nuovo nodo <book> e lo inserisce prima dell'ultimo elemento <book> del documento:
//controlla se l'ultimo figlio è un nodo elemento
funzione get_lastchild(n)
{
x=n.lastChild;
while (x.nodeType!=1)
{
x=x.previousSibling;
}
return x;
}
xmlDoc=loadXMLDoc("books.xml");
newNode=xmlDoc.createElement("book");
newTitle=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("A Notebook");
newTitle.appendChild(newText);
newNode.appendChild(newTitle);
xmlDoc.documentElement.insertBefore(newNode,get_lastchild(x));