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