Propiedad firstChild del XML DOM
Definición y uso
firstChild
La propiedad devuelve el primer hijo del documento.
Sintaxis
documentObject.firstChildNota:Firefox y la mayoría de los otros navegadores consideran los espacios en blanco o las salidas de línea como nodos de texto, mientras que Internet Explorer no. Por lo tanto, en el siguiente ejemplo, utilizamos una función para verificar el tipo de nodo del primer hijo.
El nodeType de los nodos de elemento es 1, por lo que si el primer hijo no es un nodo de elemento, se moverá al siguiente nodo y se verificará si es un nodo de elemento. Esto continuará hasta que se encuentre el primer 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, consulte la sección DOM de Navegadores en el tutorial XML DOM.
Ejemplo
Ejemplo 1
La siguiente sección de código cargará "books.xml" en xmlDoc y mostrará el nombre del primer hijo del nodo y el tipo de nodo:
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 xmlDoc = xml.responseXML; var x = get_firstchild(xmlDoc); document.getElementById("demo").innerHTML = "Nodename: " + x.nodeName + " (nodetype: " + x.nodeType + ")<br>"; }
Ejemplo 2
Obtener el último hijo del documento:
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 último nodo es un nodo de elemento function get_lastchild(n) { var x = n.lastChild; while (x.nodeType != 1) { x = x.previousSibling; } return x; } function myFunction(xml) { var xmlDoc = xml.responseXML; // Obtener el último hijo del documento var x = get_lastchild(xmlDoc); // Obtener el último hijo del elemento raíz var y = get_lastchild(xmlDoc.documentElement); document.getElementById("demo").innerHTML = "Nodename: " + x.nodeName + " (nodetype: " + x.nodeType + ")<br>" + "Nodename: " + y.nodeName + " (nodetype: " + y.nodeType + ")<br>"; }