Узлы XML

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

Здравствуйте, уважаемые читатели блога okITgo.ru! Продолжаю рубрику XML DOM и в этот раз хочу подробнее остановиться на узлах XML – строительных кирпичиках, из которых состоит любой xml докумет. Более того, в объектной модели DOM все в XML документе является узлом.


DOM Узлы

Согласно DOM любая часть XML документа является узлом.

В соответствии с DOM:

  • Документ целиком является узлом документа
  • Каждый XML элемент – это узел элемента
  • Текст в XML элементах является текстовым узлом
  • Каждый XML атрибут – это узел атрибута
  • Комментарии являются узлами комментариев

Пример DOM

Взгляните на соедующий XML файл (books.xml):

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
 <book category="КУЛИНАРИЯ">
   <title lang="ru">Самогон и другие спиртные напитки домашнего приготовления</title>
   <author>Байдакова Ирина</author>
   <year>2005</year>
   <price>30.00</price>
 </book>
 <book category="ДЛЯ ДЕТЕЙ">
   <title lang="ru">Арлекино и Пьеро</title>
   <author>Аарх Андрей</author>
   <year>2005</year>
   <price>29.99</price>
 </book>
 <book category="ВЕБ">
   <title lang="ru">Ajax в действии</title>
   <author>Д. Крейн</author>
   <author>Э. Паскарелло</author>
   <year>2003</year>
   <price>49.99</price>
 </book>
 <book category="ВЕБ" cover="мягкая обложка">
   <title lang="ru">Библия JavaScript 4-е Издание</title>
   <author>Дэнни Гудман</author>
   <year>2003</year>
   <price>39.95</price>
 </book>
</bookstore>

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

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

Первый узел <book> содержит четыре узла: <title>, <author>, <year> и <price>, каждый из которых содержит по одному текстовому узлу "Самогон и другие спиртные напитки домашнего приготовления", "Байдакова Ирина", "2005" и "30.00" соответственно.


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

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

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

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

"2005" – это не значение элемента <year>!

В следующей статье я расскажу о древовидной структуре xml документов – представлении с точки зрения объектной модели DOM. Спасибо за внимание! До новых встреч на страницах сайта okITgo.ru.

Ваш отзыв