/******************* Начало **********************************/
Main;
/************* Конец *********************************************/
Использование XML DOM для просмотра и изменения ХМL-файла
Объектная модель XML DOM (XML Document Object Model, объектная модель документа XML) является рекомендованным корпорацией W3C стандартом, который определяет интерфейсы, с помощью которых приложения могут загружать XML-файл, просматривать его содержимое, производить поиск, добавление, изменение и удаление данных, сохранять сделанные изменения в файле. Отметим, что в модели XML DOM документ в формате XML рассматривается как иерархическое дерево, которое состоит из элементов,
называемых узлами (nodes), и имеет один корневой элемент (узел).
Замечание
В дальнейшем в этой главе терминами "элемент" и "узел" мы будем пользоваться как синонимами.
Описание модели XML DOM
Парсер MSXML поддерживает много объектов, определяемых в модели XML DOM, с помощью которых можно решать связанные с XML задачи различного уровня сложности. Нам в дальнейшем для написания сценариев, которые осуществляют просмотр записной книжки в XML-формате, а также поиск, добавление и удаление записей из этой книжки, понадобятся только три основных объекта:
DOMDocument
(представляет XML-документ в целом),
XMLDOMNode
(представляет одиночный XML-элемент, т. е. один узел в дереве) и
XMLDOMNodeList
(коллекция элементов, являющихся дочерними по отношению к определенному узлу в дереве, доступ к которым возможен по порядковому номеру при помощи метода
item
).
В свою очередь, объекты
DOMDocument
и
XMLDOMNode
имеют множество свойств и методов, некоторые из них (включая все свойства и методы, которые используются при написании сценариев для работы с записной книжкой) описаны в табл. 6.4–6.6.
Таблица 6.4. Свойства и методы объекта
DOMDocument
Название
Тип
Описание
childNodes
Свойство
Содержит коллекцию всех узлов документа. Свойство доступно только для чтения
documentElement
Свойство
Содержит ссылку на корневой элемент документа. Свойство доступно как для чтения, так и для записи
getElementsByTagName(tagName)
Метод
Возвращает коллекцию всех элементов в документе, имеющих имя, которое задается параметром
tagName
hasChildNodes
Метод
Возвращает
true
, если в документе есть элементы. В противном случае возвращает
false
load(url)
Метод
Загружает XML-документ из файла, путь к которому задан параметром
url
loadXML(xmlString)
Метод
Загружает XML-документ, содержимое которого содержится в строке
xmlString
url
Свойство
Содержит путь к загруженному XML-документу. Для того чтобы изменить это свойство, нужно заново загрузить документ с помощью метода
load
Таблица 6.5. Свойства объекта
XMLDOMNode
Название
Описание
attributes
Содержит список атрибутов узла. Свойство доступно только для чтения
childNodes
Содержит коллекцию всех узлов, которые являются дочерними по отношению к данному узлу. Свойство доступно только для чтения
firstChild
Содержит ссылку на первый дочерний узел. Свойство доступно только для чтения
lastChild
Содержит ссылку на последний дочерний узел. Свойство доступно только для чтения
nodeName
Содержит имя узла. Свойство доступно только для чтения
parentNode
Содержит ссылку на родительский узел (для тех узлов, которые имеют родительский элемент). Свойство доступно только для чтения
text
Возвращает или устанавливает текстовое содержимое узла