Андрей Попов - Windows Script Host для Windows 2000/XP
В свою очередь, объекты 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 Возвращает или устанавливает текстовое содержимое узлаТаблица 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ВПросмотр содержимого записной книжки
Для того чтобы использовать схему XML DOM в сценарии SortNameMSXML.js, осуществляющем вывод информации из XML-файла book.xml в Блокнот, нужно внести изменения в три функции: GetTagVal(obj, tgName), PersonToArray(XNode) и FileToArray(). Сценарий, который получится в результате этих изменений, назовем SortNameXMLDOM.js.
В функции FileToArray() сначала создается пустой массив PersonArr и экземпляр XML объекта DOMDocument: