Атрибут 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.