Андрей Попов - Windows Script Host для Windows 2000/XP
- Название:Windows Script Host для Windows 2000/XP
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2004
- Город:Санкт-Петербург
- ISBN:5-94157-197-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Андрей Попов - Windows Script Host для Windows 2000/XP краткое содержание
В книге описывается сервер сценариев Windows Script Host (WSH) версии 5.6, который является одним из стандартных компонентов Windows ХР, а также может быть установлен в более ранних версиях Windows. Приводятся сценарии на языках VBScript и JScript, иллюстрирующие применение стандартных объектов WSH 5.6, включая создание из сценариев дочерних процессов и запуск сценариев на удаленных компьютерах. В качестве более сложных примеров рассматриваются сценарии, работающие с базами данных, управляющие приложениями Microsoft Office, организующие графический пользовательский интерфейс, использующие технологии ADSI (Active Directory Service Interface) и WMI (Windows Management Instrumentation) для решения задач администрирования. Освещены вопросы практической работы с XML-файлами и создания СОМ-объектов. Особое внимание уделяется вопросам безопасности при работе со сценариями, приводятся конкретные примеры настроек политик безопасности. К книге прилагается дискета с исходными текстами большинства примеров.
Windows Script Host для Windows 2000/XP - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
В дальнейшем в этой главе терминами "элемент" и "узел" мы будем пользоваться как синонимами.
Описание модели 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 |
Возвращает или устанавливает текстовое содержимое узла |
Таблица 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
:
PersonArr=new Array();
XML = WScript.CreateObject("Msxml.DOMDocument");
Для загрузки содержимого файла book.xml (путь к этому файлу хранится в переменной PathBook
) в объект xml, используется метод load
:
XML.load(PathBook);
Указатель на корневой элемент записывается в переменную Root
с помощью свойства documentElement
объекта XML
:
Root=XML.documentElement;
После этого нам остается в цикле перебрать все элементы Person
(для корневого элемента они являются дочерними элементами первого уровня вложенности) и для каждого из них вызвать функцию PersonToArray()
:
for (i=1; i<=Root.childNodes.length-1; i++) {
//Выделяем в коллекции XML-элементов i-й элемент
//первого уровня вложенности
CurrNode=Root.childNodes.item(i);
//Добавляем новый элемент в массив объектов Person
PersonToArray(CurrNode);
}
Функция PersonToArray( XNode )
в SortNameXMLDOM.js имеет тот же вид, что и в сценарии SortNameMSXML.js:
function PersonToArray(XNode) {
//Создаем новый экземпляр PersonRec объекта Person
PersonRec=new Person();
//Заполняем поля объекта PersonRec
PersonRec.LastName=GetTagVal(XNode,"LastName");
PersonRec.Name=GetTagVal(XNode,"Name");
PersonRec.Phone=GetTagVal(XNode,"Phone");
PersonRec.Street=GetTagVal(XNode,"Street");
PersonRec.House=GetTagVal(XNode,"House");
PersonRec.App=GetTagVal(XNode,"App");
PersonRec.Note=GetTagVal(XNode,"Note");
//Сохраняем объект PersonRec в массиве
PersonArr[PersonArr.length]=PersonRec;
}
Здесь для построения функции GetTagVal( obj, tgName )
, которая возвращает значение дочернего для элемента obj
элемента с именем tgName
, используется метод getElementsByTagName
, возвращающий коллекцию дочерних элементов с заданным именем:
Интервал:
Закладка: