Attribut firstChild du XML DOM

Définition et utilisation

firstChild L'attribut renvoie le premier enfant du nœud spécifié.

Syntaxe

nodeObject.firstChild
Conseils et Notes

Attention :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.

Le nodeType des éléments est 1, donc si le premier enfant n'est pas un élément, il est déplacé au prochain noeud et vérifié si ce noeud est un élément. Cela continue jusqu'à ce que le premier noeud trouvé (doit être un élément) soit trouvé. De cette manière, le résultat est correct dans tous les navigateurs.

Avis :Pour plus d'informations sur les différences entre les navigateurs, veuillez consulter la section DOM navigateur du tutoriel XML DOM.

Exemple

Exemple 1

Le code suivant charge "books.xml" dans xmlDoc et affiche le nom du premier enfant du noeud :

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érifier si le premier noeud est un noeud élément
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>";
}

Essayer par vous-même

Exemple 2

Obtenir le dernier enfant du document :

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érifier si le dernier noeud est un noeud élément
function get_lastchild(n) {
    var x = n.lastChild;
    while (x.nodeType != 1) {
        x = x.previousSibling;
    }
    return x;
}
function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    // Obtenir le dernier enfant du document
    var x = get_lastchild(xmlDoc);
    // Obtenir le dernier enfant de l'élément racine
    var y = get_lastchild(xmlDoc.documentElement);
    document.getElementById("demo").innerHTML =
    "Nodename: " + x.nodeName +" 
    " (nodetype: " + x.nodeType + ")<br>" +
    "Nodename: " + y.nodeName + 
    " (nodetype: " + y.nodeType + ")<br>";
}

Essayer par vous-même