Значения Узлов

Рубрика: DOM - Объектная Модель Документа

Приветствую, уважаемые читатели блога okITgo.ru! Сегодня хочу рассказать о всевозможных способах получения значений узлов XML документа. К примеру, свойство nodeValue используется для получения текстового значения узла, а метод getAttribute() возвращает значение атрибута. Кроме того есть и другие методы и свойства DOM, позволяющие извлекать значение узлов или атрибутов.


Получение Значения Элемента

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

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

Один из способов извлечения текста элемента – получить значение дочернего узла (текстового узла).


Получаем Значение Элемента

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

Следующий код загружает "books.xml" в xmlDoc, используя loadXMLDoc() и получает первый элемент <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 = "Самогон и другие спиртные напитки домашнего приготовления"

Циклический обход всех элементов <title>: Попробуйте сами


Получаем Значение Атрибута

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

Один из способов получения значения атрибута – извлечь его текстовое значение.

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


Получаем Значение Атрибута – getAttribute()

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

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

Пример

xmlDoc=loadXMLDoc("books.xml");

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

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

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

Объяснение примера:

  1. Загружаем "books.xml" в xmlDoc с помощью loadXMLDoc()
  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. Загружаем "books.xml" в xmlDoc посредством loadXMLDoc()
  2. Получаем атрибутивный узел "lang" первого узла элемента <title>
  3. Устанавливаем переменную txt, инициализируя ее значением атрибута

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

Спасибо за внимание! До новых встреч на страницах сайта okITgo.ru.