Андрей Попов - 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
В предыдущей главе мы рассматривали сценарий для работы с записной книжкой, которая хранится в простом текстовом файле book.txt с разделителями. Каждая строка этого файла содержала одну запись в формате Фамилия|Имя|Телефон|Улица|Дом|Кв.|Примечание
:
Потапов|Сергей|55-55-55|Моховая|3|10|Без примечаний
Попов|Андрей|56-56-56|Ленина|3|5|Без примечаний
Иванов|Иван|17-17-17|Садовая|4|6|Очень хороший человек
Казаков|Сергей|24-19-68|Полежаева|101|22|Тоже очень хороший человек
Для преобразования файла book.txt к формату XML мы введем теги, описанные в табл. 6.1.
Таблица 6.1.Описание тегов для записной книжки в XML-формате
Тег | Значение |
---|---|
Корневой тег, обозначает начало записной книжки | |
Обозначает начало новой записи в книжке | |
Фамилия человека | |
Имя | |
Телефон | |
Улица | |
Дом | |
Квартира | |
Замечания |
Иерархия элементов из таблицы 6.1 показана в листинге 6.1.
Фамилия
Имя
Телефон
Улица
Дом
Квартира
Примечание
Другие записи
Файл book.xml для записной книжки формируется в соответствии с листингом 6.1 (листинг 6.2)
Потапов
Сергей
55-55-55
Моховая
3
10
Без примечаний
Попов
Андрей
56-56-56
Ленина
3
5
Без примечаний
Иванов
Иван
17-17-17
Садовая
4
6
Очень хороший человек
Казаков
Сергей
24-19-68
Полежаева
101
22
Тоже очень хороший человек
Просмотр XML-файла с помощью объектной модели Internet Explorer 4.0
Если требуется только просматривать и анализировать XML-файл, не модифицируя его, то проще всего воспользоваться объектной моделью MSXML, реализованной в Internet Explorer 4.01.
Как отмечено в документации MSDN, эта объектная модель является устаревшей и должна быть заменена моделью XML DOM ( XML Document Object Model ), которая является стандартом корпорации W3C. Однако последняя на момент написания книги версия Internet Explorer 6.0 поддерживает обе эти модели для разбора XML-файлов.
Описание объектной модели
При рассмотрении объектной модели MSXML данные, которые хранятся в XML-файле, удобно представлять в виде иерархического дерева, имеющего один корневой элемент и множество дочерних элементов различного уровня вложенности.
Для анализа содержимого XML-файла используются три объекта: XML Document
(объект для работы с XML-документом в целом), XML Element
(отвечает за работу с каждым из элементов XML-файла) и Element Collection
(коллекция XML-элементов, доступ к которым при помощи метода item()
возможен по имени или порядковому номеру).
Полный набор свойств и методов этих трех объектов мы рассматривать не будем; в табл. 6.2 и 6.3 приведено описание нескольких основных свойств объектов XML Document
и XML Element
, некоторые из них понадобятся нам в дальнейшем при составлении сценария на языке JScript для просмотра записной книжки.
Таблица 6.2.Свойства объекта XML Document
Свойство | Описание |
---|---|
URL |
Задает или возвращает путь к обрабатываемому документу |
root |
Содержит корневой элемент XML-документа, Свойство доступно только для чтения |
charset |
Возвращает или устанавливает название текущей кодировочной таблицы |
version |
Содержит номер версии XML. Свойство доступно только для чтения |
Таблица 6.3.Свойства объекта XML Element
Свойство | Описание |
---|---|
children |
Содержит коллекцию дочерних элементов |
tagName |
Содержит имя тега. Свойство доступно для чтения и записи |
text |
Возвращает текстовое содержимое элементов и комментариев |
parent |
Возвращает указатель на родительский элемент. Ссылки на родительский элемент имеют все элементы, за исключением корневого |
type |
Возвращает тип элемента: 0 — элемент, 1 — текст, 2 — комментарий, 3 — Document, 4 — DTD |
Пример сценария
С помощью приведенного ниже сценария SortNameMSXML.js все записи из book.xml сортируются по фамилии и отображаются в Блокноте. Напомним, что аналогичную задачу для текстового файла с разделителями book.txt реализует сценарий SortName.js, приведенный в листинге 5.21. Алгоритм работы сценария SortNameMSXML.js, как и SortName.js, сводится к следующим основным шагам.
1. Информация из файла book.xml считывается в массив PersonArr
. Каждый элемент массива является экземпляром объекта Person
, в котором хранятся все данные для одного человека.
2. Массив PersonArr
сортируется по возрастанию фамилий.
3. Содержимое всех записей из массива PersonArr
выводится в текстовый файл out.txt.
4. Файл out.txt открывается в Блокноте.
Таким образом, специфика работы с XML-файлом проявляется лишь при считывании данных из файла book.xml в массив PersonArr
. Для этого используется функция FileToArray()
. Сначала в этой функции создается пустой массив PersonArr
и экземпляр XML
объекта XML Document
:
PersonArr=new Array();
XML=WScript.CreateObject("MSXML");
В свойство url
объекта XML
записывается путь к файлу book.xml, который хранится в переменной PathBook
:
XML.url=PathBook;
Далее в функции FileToArray
о определяется количество элементов , т.е. количество записей в книжке (переменная NomRec
):
NamRec=XML.root.children.item("Person").length;
В цикле for
происходит перебор всех элементов , которые являются элементами соответствующей коллекции:
//Перебираем коллекцию XML-элементов Person
for (i=0; i
//Выделяем в коллекции XML-элементов i-й элемент Person
XItem=XML.root.children.item("Person", i);
//Добавляем новый элемент, в массив объектов Person
PersonToArray(XItem);
}
Как мы видим, каждый элемент передается в качестве аргумента в функцию PersonToArray( XItem )
, в которой создается новый экземпляр PersonRec
объекта Person
, заполняются поля этого объекта и происходит добавление PersonRec
в массив PersonArr
:
function PersonToArray(XItem) {
//Создаем новый экземпляр PersonRec объекта Person
PersonRec=new Person();
//Заполняем поля объекта PersonRec
PersonRec.LastName=GetTagVal(XItem,"LastName");
Интервал:
Закладка: