Атрибут childNodes XML DOM

Определение и использование

childNodes Атрибут возвращает NodeList, содержащую подузлы выбранного узла.

Если выбранный узел не содержит подузлов, этот атрибут возвращает NodeList, не содержащий узлов.

Совет:Чтобы итерировать список childNodes, использование свойства nextSibling эффективнее, чем явное использование списка childNodes родительского объекта.

Синтаксис

elementNode.childNodes

Пример

Пример 1

Ниже приведен код, который загружает "books.xml" в xmlDoc и получает текстовый узел первого элемента <title> из "books.xml":

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
       myFunction(this);
   }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    var x = xmlDoc.getElementsByTagName("title")[0];
    var y = x.childNodes[0];
    document.getElementById("demo").innerHTML =
    y.nodeValue;
}

Попробуйте сами

Пример 2

Ниже приведен код, который загружает "books.xml" в xmlDoc и получает количество подузлов первого элемента <book> из "books.xml":
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myFunction(this);
    }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    var x = xmlDoc.getElementsByTagName("book")[0].childNodes;
    document.getElementById("demo").innerHTML =
    x.length;
}

Попробуйте сами

Firefox и большинство других браузеров считают пробелы и отступы текстовыми узлами, в то время как Internet Explorer этого не делает. Поэтому результат вывода будет отличаться.

Для получения дополнительной информации о различиях между браузерами обратитесь к разделу DOM браузеров в учебнике XML DOM.