Учебник по 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


Согласно XML DOM, все в XML-документе является узлом :

  • Весь документ является узлом документа
  • Каждый элемент XML является узлом элемента
  • Текст в элементах XML представляет собой текстовые узлы.
  • Каждый атрибут является узлом атрибута
  • Комментарии — это узлы комментариев

Пример DOM

Посмотрите на следующий XML-файл ( books.xml ):

×

Заголовок

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
  <book category="cooking">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
  </book>
  <book category="children">
    <title lang="en">Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
  <book category="web">
    <title lang="en">XQuery Kick Start</title>
    <author>James McGovern</author>
    <author>Per Bothner</author>
    <author>Kurt Cagle</author>
    <author>James Linn</author>
    <author>Vaidyanathan Nagarajan</author>
    <year>2003</year>
    <price>49.99</price>
  </book>
  <book category="web" cover="paperback">
    <title lang="en">Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
  </book>
</bookstore>

Корневой узел в приведенном выше XML называется <bookstore>.

Все остальные узлы в документе содержатся в пределах <bookstore>.

Корневой узел <bookstore> содержит 4 узла <book>.

Первый узел <book> содержит дочерние узлы: <title>, <author>, <year> и <price>.

Дочерние узлы содержат по одному текстовому узлу каждый: «Повседневный итальянский», «Джада Де Лаурентис», «2005» и «30.00».



Текст всегда хранится в текстовых узлах

Распространенной ошибкой при обработке DOM является ожидание, что узел элемента будет содержать текст.

Однако текст узла элемента хранится в текстовом узле.

В этом примере: <year>2005</year> узел элемента <year> содержит текстовый узел со значением "2005".

"2005" не является значением элемента <year>!


Дерево узлов XML DOM

XML DOM рассматривает XML-документ как древовидную структуру. Древовидная структура называется деревом узлов.

Ко всем узлам можно получить доступ через дерево. Их содержимое можно изменять или удалять, а также создавать новые элементы.

Дерево узлов показывает набор узлов и связи между ними. Дерево начинается с корневого узла и разветвляется на текстовые узлы на самом низком уровне дерева:

Дерево узлов DOM

На изображении выше представлен XML-файл books.xml .


Родительские, дочерние и одноуровневые узлы

Узлы в дереве узлов имеют иерархическую связь друг с другом.

Термины «родительский», «дочерний» и «сестринский» используются для описания отношений. У родительских узлов есть дети. Дети одного уровня называются сиблингами (братьями или сестрами).

  • В дереве узлов верхний узел называется корнем
  • Каждый узел, кроме корня, имеет ровно один родительский узел.
  • У узла может быть любое количество дочерних элементов.
  • Лист — это узел без потомков
  • Братья и сестры — это узлы с одним и тем же родителем

На следующем изображении показана часть дерева узлов и взаимосвязь между узлами:

Дерево узлов

Поскольку XML-данные структурированы в виде дерева, их можно просматривать, не зная точной структуры дерева и не зная типа содержащихся в нем данных.

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


Первый ребенок - последний ребенок

Посмотрите на следующий фрагмент XML:

<bookstore>
  <book category="cooking">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
  </book>
</bookstore>

В приведенном выше XML элемент <title> является первым потомком элемента <book>, а элемент <price> — последним потомком элемента <book>.

Более того, элемент <book> является родительским узлом для элементов <title>, <author>, <year> и <price>.