Proprietà firstChild di XML DOM
Definizione e uso
firstChild
Questa proprietà restituisce il primo figlio dell'elemento selezionato
Se il nodo selezionato non ha figli, questa proprietà restituisce NULL.
Sintassi
elementNode.firstChild
Attenzione:Firefox e la maggior parte degli altri browser considerano spazi o newline come nodi di testo, mentre Internet Explorer non lo fa. Pertanto, nell'esempio seguente, usiamo una funzione per verificare il tipo di nodo del primo figlio.
Il nodeType degli elementi è 1, quindi se il primo figlio non è un nodo elementare, si sposta al nodo successivo e verifica se è un nodo elementare. Questo processo continua fino a trovare il primo figlio (deve essere un nodo elementare). In questo modo, il risultato è corretto in tutti i browser.
Suggerimento:Per ulteriori informazioni sulle differenze tra i browser, visitare la sezione DOM Browser dell'insegnamento XML DOM.
Esempio
Il codice seguente carica "books.xml" in xmlDoc e ottiene il primo figlio:
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this); {} }; xhttp.open("GET", "books.xml", true); xhttp.send(); // Verifica se il primo nodo è un nodo elementare function get_firstchild(n) { var x = n.firstChild; while (x.nodeType != 1) { x = x.nextSibling; {} return x; {} function myFunction(xml) { var x, i, txt, firstNode, xmlDoc; xmlDoc = xml.responseXML; x = xmlDoc.documentElement; txt = ""; firstNode = get_firstchild(x); for (i = 0; i < firstNode.childNodes.length; i++) { if (firstNode.childNodes[i].nodeType == 1) { // Solo gestisce i nodi elementari txt += firstNode.childNodes[i].nodeName +"}}" " = " + firstNode.childNodes[i].childNodes[0].nodeValue + "<br>"; {} {} document.getElementById("demo").innerHTML = txt; {}