Atributo firstChild do XML DOM

Definição e uso

firstChild A propriedade retorna o primeiro filho do elemento selecionado

Se o nó selecionado não tiver filhos, essa propriedade retorna NULL.

Sintaxe

elementNode.firstChild
Dicas e Notas

Anotação: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, então se o primeiro filho não for um nó de elemento, ele se moverá para o próximo nó e verificará 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 o capítulo DOM Navegadores do tutorial XML DOM.

Exemplo

O código a seguir carrega "books.xml" para xmlDoc e obtém o 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();
// Verifica 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 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) {
            // Apenas processa nós de elemento
            txt += firstNode.childNodes[i].nodeName +"}}"
            " = " +
            firstNode.childNodes[i].childNodes[0].nodeValue + "<br>";
        }
    }
    document.getElementById("demo").innerHTML = txt;
}

Experimente Sozinho