Учебник по XML

XML ГЛАВНАЯ Введение в XML XML Как использовать XML-дерево Синтаксис XML XML-элементы XML-атрибуты Пространства имен XML Отображение XML XML HttpRequest XML-парсер XML DOM XML XPath XML XSLT XML XQuery XML-ссылка XML-валидатор XML-DTD XML-схема XML-сервер XML-примеры XML-викторина XML-сертификат

XML АЯКС

Введение в АЯКС AJAX XMLHttp АЯКС-запрос AJAX-ответ XML-файл AJAX АЯКС PHP АЯКС АСП База данных AJAX AJAX-приложения Примеры AJAX

XML DOM

Введение в ДОМ DOM-узлы Доступ к DOM Информация об узле DOM Список узлов DOM Обход DOM DOM-навигация DOM Получить значения Узлы изменения DOM DOM Удалить узлы DOM заменить узлы DOM Создание узлов DOM Добавить узлы Узлы клонирования DOM Примеры DOM

Учебник XPath

XPath Введение Узлы XPath Синтаксис XPath Оси XPath Операторы XPath Примеры XPath

XSLT- учебник

Введение в XSLT Языки XSL XSLT-преобразование XSLT <шаблон> XSLT <значение> XSLT <для каждого> XSLT <сортировка> XSLT <если> XSLT <выбрать> XSLT Применить XSLT на клиенте XSLT на сервере XSLT Редактировать XML XSLT-примеры

Учебник по XQuery

Введение в XQuery Пример XQuery XQuery FLWOR XQuery HTML Условия XQuery Синтаксис XQuery XQuery Добавить Выбор XQuery Функции XQuery

XML -DTD

Введение в DTD Строительные блоки DTD Элементы DTD Атрибуты DTD Элементы DTD и Attr Сущности DTD Примеры DTD

XSD- схема

Введение в XSD XSD Как XSD <схема> XSD-элементы XSD-атрибуты XSD-ограничения

Комплекс XSD

XSD-элементы XSD пустой Только элементы XSD Только текст XSD XSD смешанный XSD-индикаторы XSD <любой> XSD <любой атрибут> Замена XSD Пример XSD

XSD- данные

XSD-строка XSD-дата XSD числовой XSD Разное Справочник по XSD

Веб- сервисы

XML-сервисы XML WSDL XML-МЫЛО XML RDF XML RSS

использованная литература

Типы узлов DOM DOM-узел Список узлов DOM DOM NamedNodeMap Документ DOM DOM-элемент Атрибут DOM DOM-текст ДОМ CDATA Дом Комментарий DOM XMLHttpRequest Парсер DOM XSLT-элементы Функции XSLT/XPath

XML DOM — доступ к узлам


С DOM вы можете получить доступ к каждому узлу в XML-документе.


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

В приведенных ниже примерах используется XML-файл books.xml .


. Используйте метод getElementsByTagName(), чтобы получить третий элемент <title> в «books.xml».


Используйте свойство length для циклического просмотра всех элементов <title> в "books.xml"


Используйте свойство nodeType, чтобы получить тип узла корневого элемента в «books.xml».


Используйте свойство nodeType для обработки только узлов элементов в «books.xml».


Используйте свойство nodeType и свойство nextSibling для обработки узлов элементов в «books.xml».

×

Заголовок


Доступ к узлам

Вы можете получить доступ к узлу тремя способами:

1. С помощью метода getElementsByTagName()

2. Перебирая (обходя) дерево узлов.

3. Перемещаясь по дереву узлов, используя отношения узлов.


Метод getElementsByTagName()

getElementsByTagName() возвращает все элементы с указанным именем тега.

Синтаксис

node.getElementsByTagName("tagname");

Пример

В следующем примере возвращаются все элементы <title> под элементом x:

x.getElementsByTagName("title");

Обратите внимание, что приведенный выше пример возвращает только элементы <title> под узлом x. Чтобы вернуть все элементы <title> в документе XML, используйте:

xmlDoc.getElementsByTagName("title");

где xmlDoc — это сам документ (узел документа).



Список узлов DOM

Метод getElementsByTagName() возвращает список узлов. Список узлов представляет собой массив узлов.

x = xmlDoc.getElementsByTagName("title");

Доступ к элементам <title> в x можно получить по номеру индекса. Чтобы получить доступ к третьему <title>, вы можете написать::

y = x[2];

Примечание. Индекс начинается с 0.

Вы узнаете больше о списках узлов в следующей главе этого руководства.


Длина списка узлов DOM

Свойство length определяет длину списка узлов (количество узлов).

Вы можете просмотреть список узлов, используя свойство length:

Пример

var x = xmlDoc.getElementsByTagName("title");

for (i = 0; i <x.length; i++) {
  // do something for each node
  }

Типы узлов

Свойство documentElement документа XML является корневым узлом.

Свойство nodeName узла — это имя узла.

Свойство nodeType узла — это тип узла.

Вы узнаете больше о свойствах узла в следующей главе этого руководства.


Пересечение узлов

Следующий код перебирает дочерние узлы, которые также являются узлами-элементами корневого узла:

Пример

txt = "";
x = xmlDoc.documentElement.childNodes;

for (i = 0; i <x.length; i++) {
  // Process only element nodes (type 1)
  if (x[i].nodeType == 1) {
    txt += x[i].nodeName + "<br>";
  }
}

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

  1. Предположим, вы загрузили « books.xml » в xmlDoc.
  2. Получить дочерние узлы корневого элемента (xmlDoc)
  3. Для каждого дочернего узла проверьте тип узла. Если тип узла "1", это узел элемента.
  4. Выведите имя узла, если он является узлом элемента

Навигация по связям узлов

Следующий код перемещается по дереву узлов, используя отношения узлов:

Пример

x = xmlDoc.getElementsByTagName("book")[0];
xlen = x.childNodes.length;
y = x.firstChild;

txt = "";
for (i = 0; i <xlen; i++) {
  // Process only element nodes (type 1)
  if (y.nodeType == 1) {
    txt += y.nodeName + "<br>";
  }
  y = y.nextSibling;
}

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

  1. Предположим, вы загрузили « books.xml » в xmlDoc.
  2. Получить дочерние узлы первого элемента книги
  3. Установите переменную "y" в качестве первого дочернего узла первого элемента книги.
  4. Для каждого дочернего узла (начиная с первого дочернего узла "y"):
  5. Проверьте тип узла. Если тип узла "1", это узел элемента.
  6. Выведите имя узла, если он является узлом элемента
  7. Установите переменную "y" в качестве следующего родственного узла и снова выполните цикл.