Описание модели XML DOM
Описание модели 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
Таблица 6.6. Методы объекта XMLDOMNode
Название Описание appendChild(NewElem) Добавляет новый элемент NewElem в качестве последнего дочернего элемента. В качестве результата возвращает ссылку на добавленный узел cloneNode(deep) Создает новый узел, который является точной копией текущего узла. Параметр deep — это логическая константа, которая указывает, нужно ли при создании нового узла копировать дочерние узлы текущего элемента (deep=true), либо этого делать не следует (deep=true) hasChildNodes() Возвращает true, если у узла есть дочерние элементы. В противном случае возвращает false removeChild(OldElem) Удаляет дочерний элемент, ссылка на который содержится в параметре OldElem replaceChild(OldElem, NewElem) Заменяет элемент, ссылка на который содержится в параметре OldElem, на элемент, ссылка на который содержится в параметре NewElem selectNodes(patternString) Производит поиск дочерних элементов, содержимое которых удовлетворяет шаблону поиска patternString. В результате возвращает объект XMLDOMNodeList, содержащий коллекцию всех найденных узлов selectSingleNode(patternString) Производит поиск первого дочернего элемента, содержимое которого удовлетворяет шаблону поиска patternString. В случае удачного поиска возвращает ссылку на найденный элемент, в противном случае возвращает Null