XML DOM Получение значения узла


Свойство nodeValue используется для получения текстового значения узла.

Метод getAttribute() возвращает значение атрибута.


Получение значения элемента

В DOM каждый компонент является узлом. Узлы элементов не имеют текстового значения.

Текст узла элемента хранится в дочернем узле. Этот узел называется текстовым узлом.

Чтобы получить текст элемента, нужно получить значение этого дочернего узла (текстового узла).


Получение значения элемента

Метод getElementsByTagName() возвращает список узлов, содержащий все элементы с указанным именем тега, в порядке их появления в исходном документе.

Следующий код с помощьюloadXMLDoc()загружаетв xmlDoc и извлекает первый элемент <title>:

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("title")[0];

Свойство childNodes возвращает список дочерних узлов. Элемент <title> имеет только один дочерний узел. Это текстовый узел.

Следующий код извлекает текстовый узел элемента <title>:

x=xmlDoc.getElementsByTagName("title")[0];
y=x.childNodes[0];

Свойство nodeValue возвращает текстовое значение текстового узла:

Пример

x=xmlDoc.getElementsByTagName("title")[0];
y=x.childNodes[0];
txt=y.nodeValue;

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

Результат: txt = "Everyday Italian"

Перебрать все элементы <title>:


Получить значение атрибута

В DOM атрибуты также являются узлами. В отличие от узлов элементов, узлы атрибутов имеют текстовые значения.

Способ получить значение атрибута — получить его текстовое значение.

Это можно сделать с помощью метода getAttribute() или свойства nodeValue узла атрибута.


Получить значение атрибута - getAttribute()

Метод getAttribute() возвращает атрибут.Значение。

Следующий код извлекает текстовое значение атрибута "lang" первого элемента <title>:

Пример

xmlDoc=loadXMLDoc("books.xml");

txt=xmlDoc.getElementsByTagName("title")[0].getAttribute("lang");

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

Результат: txt = "en"

Пояснение к примеру:

  1. ИспользованиеloadXMLDoc(): поместите "" и загрузите в xmlDoc
  2. Присвойте переменной txt значение атрибута "lang" первого узла элемента title.

Пройдите в цикле по всем элементам <book> и получите их атрибуты "category":


Получить значение атрибута - getAttributeNode()

Метод getAttributeNode() возвращает атрибут.узел。

Следующий код извлекает текстовое значение атрибута "lang" первого элемента <title>:

Пример

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("title")[0].getAttributeNode("lang");
txt=x.nodeValue;

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

Результат: Результат: txt = "en"

Пояснение к примеру:

  1. ИспользованиеloadXMLDoc(): поместите "" и загрузите в xmlDoc
  2. Получить узел атрибута "lang" первого узла элемента <title>.
  3. Присвоить переменной txt значение атрибута.

Пройдите в цикле по всем элементам <book> и получите их атрибуты "category":


Другие расширения