XML DOM Получить значения узла
Свойство nodeValue используется для получения текстового значения узла.
Метод getAttribute() возвращает значение атрибута.
Получить значение элемента
В DOM все является узлом. Узлы элементов не имеют текстового значения.
Текстовое значение узла элемента хранится в дочернем узле. Этот узел называется текстовым узлом.
Чтобы получить текстовое значение элемента, вы должны получить значение текстового узла элементов.
Метод getElementsByTagName
Метод getElementsByTagName() возвращает список узлов всех элементов с указанным именем тега в том же порядке, в котором они появляются в исходном документе.
Предположим, что « books.xml » был загружен в xmlDoc.
Этот код извлекает первый элемент <title>:
var x = xmlDoc.getElementsByTagName("title")[0];
Свойство ChildNodes
Свойство childNodes возвращает список дочерних узлов элемента .
Следующий код извлекает текстовый узел первого элемента <title>:
x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
Свойство nodeValue
Свойство nodeValue возвращает текстовое значение текстового узла .
Следующий код извлекает текстовое значение текстового узла первого элемента <title>:
Пример
x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
z = y.nodeValue;
Результат в z: "Повседневный итальянский"
Полный пример
Пример
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
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;
}
</script>
</body>
</html>
Переберите все элементы <title>:
Получить значение атрибута
В DOM атрибуты — это узлы. В отличие от узлов элементов, узлы атрибутов имеют текстовые значения.
Способ получить значение атрибута — получить его текстовое значение.
Это можно сделать с помощью метода getAttribute() или с помощью свойства nodeValue узла атрибута.
Получить значение атрибута — getAttribute()
Метод getAttribute() возвращает значение атрибута .
Следующий код извлекает текстовое значение атрибута «lang» первого элемента <title>:
Пример
x = xmlDoc.getElementsByTagName("title")[0];
txt = x.getAttribute("lang");
Результат в txt: "ru"
Переберите все элементы <book> и получите их атрибуты «категории»:
Получить значение атрибута — getAttributeNode()
Метод getAttributeNode() возвращает узел атрибута .
Следующий код извлекает текстовое значение атрибута «lang» первого элемента <title>:
Пример
x = xmlDoc.getElementsByTagName("title")[0];
y = x.getAttributeNode("lang");
txt = y.nodeValue;
Результат в txt="en"
Переберите все элементы <book> и получите их атрибуты «категории»: