Попов Андрей Викторович
Шрифт:
XMLDoc = WScript.CreateObject("Msxml.DOMDocument");
XMLDoc.load(PathBook);
Указатель на корневой элемент сохраняется в переменной Root:
Root=XMLDoc.documentElement;
После этого с помощью метода
createElement
создается новый элемент Person
, который затем добавляется в book.xml (метод appendChild
): //Создаем XML-элемент Person
NewElem=XMLDoc.createElement("Person");
//Добавляем новый элемент в XML-файл
Root.appendChild(NewElem);
Другие добавляемые элементы (
LastName
, Name
, Phone
, Street
, House
, App
и Note
) должны быть дочерними относительно элемента Person
, поэтому в переменной Root
мы сохраним ссылку на последний добавленный элемент Person
: Root=Root.lastChild;
Все элементы добавляются с помощью вызовов методов
createElement
и appendChild
, например: //Создаем элемент LastName
NewElem=XMLDoc.createElement("LastName");
//Добавляем новый элемент в XML-файл (внутри элемента Person)
Root.appendChild(NewElem);
Содержимое добавляемых элементов (свойство
text
) берется из соответствующих полей объекта PersRec
, например: //Подставляем в качестве содержимого элемента LastName
//значение поля LastName объекта PersRec
Root.lastChild.text=PersRec.LastName;
После того как все нужные элементы добавлены, измененный файл book.xml с помощью метода save сохраняется на жестком диске:
XMLDoc.save(PathBook);
Полный текст сценария AddRecord.js приводится в листинге 6.5.
Листинг 6.5. Добавление данных в XML-файл с помощью XML DOM
/*******************************************************************/
/* Имя: AddRecord.js */
/* Язык: JScript */
/* Описание: Записная книжка (данные в XML-файле book.xml). */
/* Вставка новых элементов в XML-файл */
/*******************************************************************/
//Объявляем переменные
var
WshShell,
BasePath, //Путь к текущему каталогу
PathBook, //Путь к файлу с данными
XMLDoc, //XML-файл с данными
NomRec=0, //Счетчик количества записей
PersonRec, //Объект для хранения данных об одном человеке
PersonArr; //Массив для хранения объектов PersonRec
//Инициализируем константы для диалоговых окон
var vbYesNo=4,vbQuestion=32,vbInformation=64,vbYes=6,vbOkOnly=0;
//Конструктор объекта Person
function Person(LastName,Name,Phone,Street,House,App,Note) {
this.LastName=LastName; //Фамилия
this.Name=Name; //Имя
this.Phone=Phone; //Телефон
this.Street=Street; //Улица
this.House=House; //Дом
this.App=App; //Квартира
this.Note=Note; //Примечание
}
//Заполнение полей объекта PersonRec
function MakePersonRec {
//Создаем экземпляр PersonRec объекта Person
PersonRec=new Person;
//Заполняем поля объекта PersonRec
PersonRec.LastName="Сидоров";
PersonRec.Name="Антон";
PersonRec.Phone="18-18-18";
PersonRec.Street="Саранская";
PersonRec.House="12";
PersonRec.App="4";
PersonRec.Note="Запись добавлена из сценария";