Atributo firstChild de XML DOM
Definición y uso
firstChild
Esta propiedad devuelve el primer nodo hijo del elemento seleccionado
Si el nodo seleccionado no tiene nodos hijos, esta propiedad devuelve NULL.
Sintaxis
elementNode.firstChild
Nota:Firefox y la mayoría de los otros navegadores considerarán los espacios en blanco o saltos de línea como nodos de texto, mientras que Internet Explorer no lo hará. Por lo tanto, en el siguiente ejemplo, utilizamos una función para verificar el tipo de nodo del primer nodo hijo.
El nodeType de los nodos de elemento es 1, por lo que si el primer nodo hijo no es un nodo de elemento, se desplazará al siguiente nodo y verificará si ese nodo es un nodo de elemento. Esto continuará hasta encontrar el primer nodo hijo (debe ser un nodo de elemento). De esta manera, el resultado es correcto en todos los navegadores.
Consejo:Para obtener más información sobre las diferencias entre navegadores, visite la sección DOM Navegadores del tutorial XML DOM.
Ejemplo
El siguiente código carga "books.xml" en xmlDoc y obtiene el primer nodo hijo:
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this); } }; xhttp.open("GET", "books.xml", true); xhttp.send(); // Verificar si el primer nodo es un nodo de elemento 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 se procesan los nodos de elemento txt += firstNode.childNodes[i].nodeName +""} " = " + firstNode.childNodes[i].childNodes[0].nodeValue + "<br>"; } } document.getElementById("demo").innerHTML = txt; }