Просмотр XML-файла с помощью объектной модели Internet Explorer 4.0
Если требуется только просматривать и анализировать XML-файл, не модифицируя его, то проще всего воспользоваться объектной моделью MSXML, реализованной в Internet Explorer 4.01.
Как отмечено в документации MSDN, эта объектная модель является устаревшей и должна быть заменена моделью XML DOM (
Описание объектной модели
При рассмотрении объектной модели MSXML данные, которые хранятся в XML-файле, удобно представлять в виде иерархического дерева, имеющего один корневой элемент и множество дочерних элементов различного уровня вложенности.
Для анализа содержимого XML-файла используются три объекта: XML Document
(объект для работы с XML-документом в целом), XML Element
(отвечает за работу с каждым из элементов XML-файла) и Element Collection
(коллекция XML-элементов, доступ к которым при помощи метода item()
возможен по имени или порядковому номеру).
Полный набор свойств и методов этих трех объектов мы рассматривать не будем; в табл. 6.2 и 6.3 приведено описание нескольких основных свойств объектов XML Document
и XML Element
, некоторые из них понадобятся нам в дальнейшем при составлении сценария на языке JScript для просмотра записной книжки.
XML Document
Свойство | Описание |
---|---|
URL | Задает или возвращает путь к обрабатываемому документу |
root | Содержит корневой элемент XML-документа, Свойство доступно только для чтения |
charset | Возвращает или устанавливает название текущей кодировочной таблицы |
version | Содержит номер версии XML. Свойство доступно только для чтения |
XML Element
Свойство | Описание |
---|---|
children | Содержит коллекцию дочерних элементов |
tagName | Содержит имя тега. Свойство доступно для чтения и записи |
text | Возвращает текстовое содержимое элементов и комментариев |
parent | Возвращает указатель на родительский элемент. Ссылки на родительский элемент имеют все элементы, за исключением корневого |
type | Возвращает тип элемента: 0 — элемент, 1 — текст, 2 — комментарий, 3 — Document, 4 — DTD |
Пример сценария
С помощью приведенного ниже сценария SortNameMSXML.js все записи из book.xml сортируются по фамилии и отображаются в Блокноте. Напомним, что аналогичную задачу для текстового файла с разделителями book.txt реализует сценарий SortName.js, приведенный в листинге 5.21. Алгоритм работы сценария SortNameMSXML.js, как и SortName.js, сводится к следующим основным шагам.
1. Информация из файла book.xml считывается в массив PersonArr
. Каждый элемент массива является экземпляром объекта Person
, в котором хранятся все данные для одного человека.
2. Массив PersonArr
сортируется по возрастанию фамилий.
3. Содержимое всех записей из массива PersonArr
выводится в текстовый файл out.txt.
4. Файл out.txt открывается в Блокноте.
Таким образом, специфика работы с XML-файлом проявляется лишь при считывании данных из файла book.xml в массив PersonArr
. Для этого используется функция FileToArray()
. Сначала в этой функции создается пустой массив PersonArr
и экземпляр XML
объекта XML Document
:
PersonArr=new Array();
XML=WScript.CreateObject("MSXML");
В свойство url
объекта XML
записывается путь к файлу book.xml, который хранится в переменной PathBook
:
XML.url=PathBook;
Далее в функции FileToArray
о определяется количество элементов
, т.е. количество записей в книжке (переменная NomRec
):