Propriedade firstChild do XML DOM

Definição e Uso

firstChild A propriedade retorna o primeiro filho do nó especificado.

Sintaxe

nodeObject.firstChild
Dicas e Notas

Atenção:Firefox e a maioria dos outros navegadores consideram espaços em branco ou quebras de linha como nós de texto, enquanto o Internet Explorer não. Portanto, no exemplo a seguir, usamos uma função para verificar o tipo de nó do primeiro filho.

O nodeType dos nós de elemento é 1, portanto, se o primeiro filho não for um nó de elemento, ele será movido para o próximo nó e verificado se esse nó é um nó de elemento. Isso continuará até encontrar o primeiro filho (deve ser um nó de elemento). Dessa forma, o resultado é correto em todos os navegadores.

Dica:Para obter mais informações sobre as diferenças entre navegadores, acesse a seção DOM Navegadores do tutorial XML DOM.

Exemplo

Exemplo 1

A seguir, o código carregará "books.xml" para xmlDoc e exibirá o nome do nó do primeiro filho:

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 se o primeiro nó é um nó 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>";
}

Experimente pessoalmente

Exemplo 2

Obter o último filho do 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 se o último nó é um nó 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;
    // Obter o último filho do documento
    var x = get_lastchild(xmlDoc);
    // Obter o último filho do elemento raiz
    var y = get_lastchild(xmlDoc.documentElement);
    document.getElementById("demo").innerHTML =
    "Nodename: " + x.nodeName + 
    " (nodetype: " + x.nodeType + ")<br>" +
    "Nodename: " + y.nodeName + 
    " (nodetype: " + y.nodeType + ")<br>";
}

Experimente pessoalmente