Вход/Регистрация
Windows Script Host для Windows 2000/XP
вернуться

Попов Андрей Викторович

Шрифт:

После этого нам остается в цикле перебрать все элементы

Person
(для корневого элемента они являются дочерними элементами первого уровня вложенности) и для каждого из них вызвать функцию
PersonToArray
:

for (i=1; i<=Root.childNodes.length-1; i++) {

 //Выделяем в коллекции XML-элементов i-й элемент

 //первого уровня вложенности

 CurrNode=Root.childNodes.item(i);

 //Добавляем новый элемент в массив объектов Person

 PersonToArray(CurrNode);

}

Функция

PersonToArray(XNode)
в SortNameXMLDOM.js имеет тот же вид, что и в сценарии SortNameMSXML.js:

function PersonToArray(XNode) {

 //Создаем новый экземпляр PersonRec объекта Person

 PersonRec=new Person;

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

 PersonRec.LastName=GetTagVal(XNode,"LastName");

 PersonRec.Name=GetTagVal(XNode,"Name");

 PersonRec.Phone=GetTagVal(XNode,"Phone");

 PersonRec.Street=GetTagVal(XNode,"Street");

 PersonRec.House=GetTagVal(XNode,"House");

 PersonRec.App=GetTagVal(XNode,"App");

 PersonRec.Note=GetTagVal(XNode,"Note");

 //Сохраняем объект PersonRec в массиве

 PersonArr[PersonArr.length]=PersonRec;

}

Здесь для построения функции

GetTagVal(obj, tgName)
, которая возвращает значение дочернего для элемента
obj
элемента с именем
tgName
, используется метод
getElementsByTagName
, возвращающий коллекцию дочерних элементов с заданным именем:

function GetTagVal(obj, tgName) {

 var ElemList;

 //Создаем коллекцию дочерних для obj элементов, которые

 //задаются тегом tgName

 ElemList=obj.getElementsByTagName(tgName);

 //Проверяем, есть ли в коллекции ElemList элементы

 if (ElemList.length>0)

//Возвращаем значение первого встретившегося элемента tgName

return ElemList.item(0).text

 else return "";

}

В листинге 6.4 приводится полный текст сценария SortNameXMLDOM.js.

Листинг 6.4. Чтение данных из XML-файла с помощью XML DOM

/*******************************************************************/

/* Имя: SortNameXMLDOM.js */

/* Язык: JScript */

/* Описание: Записная книжка (данные в XML-файле book.xml). */

/* Вывод всех записей с сортировкой по фамилии с */

/* помощью объектной модели XML DOM */

/*******************************************************************/

//Объявляем переменные

var

 WshShell,FSO,

 BasePath, //Путь к текущему каталогу

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

 PathOut, //Путь к выходному файлу

 FBook, //Файл с данными

 FOut, //Выходной файл

 NomRec=0, //Счетчик количества записей

 PersonRec, //Объект для хранения данных об одном человеке

 PersonArr; //Массив для хранения объектов PersonRec

 ForWriting=2; //Константа для создания выходного файла

//Конструктор объекта Person

function Person(LastName,Name,Phone,Street,House,App,Note) {

 this.LastName=LastName; //Фамилия

 this.Name=Name; //Имя

 this.Phone=Phone; //Телефон

  • Читать дальше
  • 1
  • ...
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: