Propriété firstChild de XML DOM

Définition et utilisation

firstChild Cette propriété renvoie le premier enfant de l'élément sélectionné

Si le nœud sélectionné n'a pas d'enfants, cette propriété renvoie NULL.

Syntaxe

firstChild de l'élémentNode
Conseils et notes

Remarque :Firefox et la plupart des autres navigateurs considèrent les espaces ou les retours chariot comme des nœuds de texte, tandis que Internet Explorer ne le fait pas. Par conséquent, dans l'exemple suivant, nous utilisons une fonction pour vérifier le type de nœud du premier enfant.

Les nœuds élémentaires ont un nodeType de 1, donc si le premier enfant n'est pas un nœud élémentaire, il passe au prochain nœud et vérifie si ce nœud est un nœud élémentaire. Cela continue jusqu'à ce que le premier enfant soit trouvé (doit être un nœud élémentaire). De cette manière, le résultat est correct dans tous les navigateurs.

Astuce :Pour en savoir plus sur les différences entre les navigateurs, veuillez consulter la section DOM navigateur du tutoriel XML DOM.

Exemple

Le code suivant charge "books.xml" dans xmlDoc et obtient le premier enfant :

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
       myFunction(this);
   }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
// Vérifiez si le premier nœud est un nœud élémentaire
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) {
            // Seulement les nœuds élémentaires sont traités
            txt += firstNode.childNodes[i].nodeName +"}}"
            " = " +
            firstNode.childNodes[i].childNodes[0].nodeValue + "<br>";
        }
    }
    document.getElementById("demo").innerHTML = txt;
}

Essayer par vous-même