Windows Script Host для Windows 2000/XP
Шрифт:
Описание: Записная книжка (данные в XML-файле book.xml).
Поиск и удаление элементов из XML-файла
</description>
</runtime>
<script language="VBScript">
'Функция возвращает фамилию для удаления
Function InputName
'Вводим фамилию в диалоговом окне
InputName = InputBox("Введите фамилию для
удаления:", "Записная книжка")
End Function
</script>
<script language="JScript">
//Объявляем переменные
var
WshShell,
LastName, //Удаляемая фамилия
BasePath, //Путь к текущему каталогу
PathBook, //Путь к файлу с данными
XMLDoc, //XML-файл с данными
NomRec=0, //Счетчик количества записей
PersonRec, //Объект для хранения данных об одном человеке
PersonArr; //Массив для хранения объектов PersonRec
//Инициализируем константы для диалоговых окон
var vbYesNo=4,vbQuestion=32,vbInformation=64,vbYes=6,vbOkOnly=0;
//Поиск фамилии в записной книжке и удаление всех
//реквизитов, относящихся к этой фамилии
function FindAndDelRecord {
var Root,sSelect,i,Parent,NodeList;
//Создаем объект DOMDocument
XMLDoc = WScript.CreateObject("Msxml.DOMDocument");
//Загружаем XML-файл
XMLDoc.load(PathBook);
//Сохраняем в переменной Root ссылку на корневой элемент
//документа
Root=XMLDoc.documentElement;
//Формируем строку для поиска фамилии
sSelect="Person/LastName[text='"+LastName+"']";
//Создаем коллекцию NodeList всех элементов LastName,
//значение которых совпадает со значением переменной LastName
NodeList=XMLDoc.documentElement.selectNodes(sSelect);
if (NodeList.length==0) //Коллекция NodeList пуста
//Выводим диалоговое окно с сообщением
WshShell.Popup("Фамилия "+LastName+
" не найдена в записной книжке!",0,
"Работа с XML-файлом",vbInformation+vbOkOnly);
else { //Требуемая фамилия найдена
//Цикл по всем найденным элементам LastName
for (i=0;i<=NodeList.length-1;i++) {
//Определяем
родительский элемент (Person) для найденного
//элемента LastName
Parent=NodeList.item(i).parentNode;
//Удаляем элемент Person вместе со всеми его дочерними элементами
Root.removeChild(Parent);
//Выводим диалоговое окно с сообщением
WshShell.Popup("Запись удалена!",0,
"Работа с XML-файлом",vbInformation+vbOkOnly);
}
//Сохраняем содержимое XML-файла на диске
XMLDoc.save(PathBook);
}
}
//Построение путей к файлам
function InitPath {
BasePath=WshShell.CurrentDirectory+"\\";
//Путь к файлу с данными
PathBook=BasePath+"book.xml";
}
//Основная запускная функция
function Main {
var Res;
//Создаем объект WshShell
WshShell = WScript.CreateObject("WScript.Shell");
//Определяем пути к файлам
InitPath;
LastName=InputName;
//Запрос на удаление записи
Res=WshShell.Popup("Удалить фамилию "+LastName+
" из \n"+PathBook+"?",0,
"Работа с XML-файлом",vbQuestion+vbYesNo);
if (Res==vbYes) { //Нажата кнопка Да
//Ищем в книжке нужную фамилию и удаляем относящуюся к
//ней запись
FindAndDelRecord;
}
}
/******************* Начало **********************************/
Main;
/************* Конец *********************************************/
</script>
</job>
Глава 7
Способы организации диалогового режима работы сценариев
В этой главе на примере работы с записной книжкой будут рассмотрены три способа организации из сценария диалога с пользователем.
Во-первых, мы еще раз подробно остановимся на том, как можно использовать параметры командной строки для запуска различных заданий из многозадачного WS-файла, который в нашем случае будет реализовывать несколько функций для работы с записной книжкой.
Поделиться:
Популярные книги
Искатель 9
9. Валинор
Фантастика:
рпг
фэнтези
попаданцы
гаремник
5.00
рейтинг книги
Князь Андер Арес 3
3. Андер Арес
Фантастика:
рпг
аниме
фэнтези
5.00
рейтинг книги
Позывной "Князь" 4
4. Князь Эгерман
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Адвокат Империи 14
14. Адвокат империи
Фантастика:
городское фэнтези
аниме
попаданцы
5.00
рейтинг книги
Лимитерия
Проза:
современная проза
7.50
рейтинг книги
Легионы во Тьме 2
10. Глэрд
Фантастика:
боевая фантастика
фэнтези
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 9
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
Личный аптекарь императора. Том 6
6. Личный аптекарь императора
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Чужак из ниоткуда
1. Чужак из ниоткуда
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Технарь
1. Технарь
Фантастика:
космическая фантастика
попаданцы
7.13
рейтинг книги
Играть... в тебя
3. Звериные повадки Симоновых
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Перешагнуть пропасть
1. Перешагнуть пропасть
Фантастика:
боевая фантастика
космическая фантастика
8.38
рейтинг книги
Воронцов. Перезагрузка
1. Воронцов. Перезагрузка
Фантастика:
попаданцы
альтернативная история
фантастика: прочее
5.00
рейтинг книги
Волхв пятого разряда
2. Ледащий
Фантастика:
фэнтези
попаданцы
5.00