Андрей Попов - 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, возвращающий коллекцию дочерних элементов с заданным именем:
Интервал:
Закладка: