sSelect='Person/LastName[text()=''+LastName+'']';
//Создаем коллекцию NodeList всех элементов LastName,
//значение которых совпадает со значением переменной LastName
NodeList=XMLDoc.documentElement.selectNodes(sSelect);
if (NodeList.length==0) {//Коллекция NodeList пуста
//Выводим диалоговое окно с сообщением
WshShell.Popup('Фамилия '+ LastName+ ' не найдена!', 0,
'Записная книжка',vbInformation+vbOkOnly);
//Завершаем выполнение задания
WScript.Quit();
} else { //Требуемая фамилия найдена
//Цикл по всем найденным элементам LastName
for (i=0;i<=NodeList.length-1;i++) {
//Определяем родительский элемент (Person) для найденного
//элемента LastName
Parent=NodeList.item(i).parentNode;
//Добавляем новый элемент в массив объектов Person
PersonToArray(Parent);
}
}
}
//Вывод в выходной файл информации о найденных записях
function PrintAllFind() {
var i;
for (i=0;i<PersonArr.length;i++) {
PrintPerson(PersonArr[i]);
}
}
//Основная запускная функция
function Main() {
var LastName;
//Создаем объект WshShell
WshShell = WScript.CreateObject('WScript.Shell');
//Определяем пути к файлам
InitPath();
//Создаем объект FileSystemObject
FSO=WScript.CreateObject('Scripting.FileSystemObject');
//Открываем выходной файл для записи
FOut=FSO.OpenTextFile(PathOut,ForWriting,true);
//Печатаем заголовок отчета
TopReport('Поиск записей');
//Вводим фамилию для поиска
LastName=WSHInputBox('Введите фамилию для поиска:','Записная книжка')
//Ищем в XML-файле нужные записи и сохраняем их в массиве PersonArr
RecordsToArray(LastName);
//Выводим все найденные записи из массива PersonArr в выходной файл
PrintAllFind(LastName);
//Печатаем итоговую информацию
BottomReport('Всего найдено: '+PersonArr.length);
//Открываем выходной файл в Блокноте
MakeOut();
}
//Запускаем основную функцию
Main();
</script>
</job>
<!-- *************** Удаление записи по фамилии *************** -->
<job id='DelRec'>
<script language='VBScript' src='WSHInputBox.vbs'/>
<script language='JScript' src='usage.js'/>
<script language='JScript'>
//Поиск фамилии в записной книжке и удаление всех
//реквизитов, относящихся к этой фамилии
function FindAndDelRecord(LastName) {
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,
'Записная книжка',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,
'Записная книжка',vbInformation+vbOkOnly);
}
//Сохраняем содержимое XML-файла на диске
XMLDoc.save(PathBook);
}
}
//Основная запускная функция
function Main() {