Root.appendChild(NewElem);

 //Подставляем в качестве содержимого элемента Street

 //значение поля Street объекта PersRec

 Root.lastChild.text=PersRec.Street;

 //Создаем элемент House

 NewElem=XMLDoc.createElement('House');

 //Добавляем новый элемент в XML-файл (внутри элемента Person)

 Root.appendChild(NewElem);

 //Подставляем в качестве содержимого элемента House

 //значение поля House объекта PersRec

 Root.lastChild.text=PersRec.House;

 //Создаем элемент App

 NewElem=XMLDoc.createElement('App');

 //Добавляем новый элемент в XML-файл (внутри элемента Person)

 Root.appendChild(NewElem);

 //Подставляем в качестве содержимого элемента App

 //значение поля House объекта PersRec

 Root.lastChild.text=PersRec.App;

 //Создаем элемент Note

 NewElem=XMLDoc.createElement('Note');

 //Добавляем новый элемент в XML-файл (внутри элемента Person)

 Root.appendChild(NewElem);

 //Подставляем в качестве содержимого элемента App

 //значение поля House объекта PersRec

 Root.lastChild.text=PersRec.Note;

 //Сохраняем содержимое XML-файла на диске

 XMLDoc.save(PathBook);

}

//Добавление новой записи в книжку

function AddRecord() {

 //Заполняем поля объекта PersonRec

 MakePersonRec();

 //Сохраняем данные из объекта PersonRec в XML-файл

 RecordToFile(PersonRec);

}

//Построение путей к файлам

function InitPath() {

 BasePath=WshShell.CurrentDirectory+'\';

 //Путь к файлу с данными

 PathBook=BasePath+'book.xml';

}

//Основная запускная функция

function Main() {

 var Res;

 //Создаем объект WshShell

 WshShell = WScript.CreateObject('WScript.Shell');

 //Определяем пути к файлам

 InitPath();

 //Запрос на создание нового ключа

 Res=WshShell.Popup('Добавить запись в '+PathBook+'?', 0,

  'Работа с XML-файлом', vbQuestion+vbYesNo);

 if (Res==vbYes) { //Нажата кнопка Да

  //Добавляем новую запись в книжку

  AddRecord();

  //Выводим информацию на экран

  WshShell.Popup('Новая запись '+PersonRec.LastName+' '+

   PersonRec.Name+' '+PersonRec.Phone+' '+

   PersonRec.Street+', '+PersonRec.House+'-'+PersonRec.App+' '+

   'добавлена в файл '+PathBook, 0,

   'Работа с XML-файлом', vbInformation+vbOkOnly);

 }

}

/*******************  Начало  **********************************/

Main();

/*************  Конец *********************************************/ 

Поиск и удаление записи из книжки 

Рассмотрим сценарий FindAndDelRecord.wsf, с помощью которого можно будет полностью удалить из записной книжки данные о человеке, фамилия которого введена в диалоговом окне (рис. 6.1).

Рис. 6.1. Ввод фамилии для удаления

Сценарий FindAndDelRecord.wsf реализован в виде WS-файла для того, чтобы можно было внутри JScript-кода воспользоваться функцией InputName на языке VBScript, которая реализует диалоговое окно с полем ввода, показанное на рис. 6.1:

Function InputName

 'Вводим фамилию в диалоговом окне

 InputName = InputBox('Введите фамилию для удаления:', 'Записная книжка')

End Function

Фамилия, которую следует найти и удалить в записной книжке, сохраняется в глобальной переменной LastName:

LastName=InputName();

Непосредственно поиск и удаление данных производятся в функции FindAndDelRecord() . Здесь, как и во всех рассмотренных ранее примерах, сначала создается экземпляр XMLDoc объекта DOMDocument, с помощью метода load загружается файл book.xml и указатель на корневой элемент сохраняется в переменной Root:

XMLDoc = WScript.CreateObject('Msxml.DOMDocument');

XMLDoc.load(PathBook);

Root=XMLDoc.documentElement;

Для выделения в записной книжке всех фамилий, которые требуется удалить, используется метод selectNodes(). В качестве аргумента этого метода подставляется строка sSelect, которая указывает, что нужно искать расположенные внутри элементов Person элементы с именем LastName и значением, которое совпадает со значением переменной LastName. Все найденные элементы помещаются в коллекцию

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату