Propiedad firstChild del XML DOM

Definición y uso

firstChild La propiedad devuelve el primer hijo del documento.

Sintaxis

documentObject.firstChild
Consejos y Notas

Nota: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>";
}

Pruebe usted mismo

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>";
}

Pruebe usted mismo