Узлы XML
Здравствуйте, уважаемые читатели блога 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.