Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК_XML.doc
Скачиваний:
16
Добавлен:
03.05.2019
Размер:
3.94 Mб
Скачать

7.3. Доступ и отображение элементов xml-документа

В этом разделе будут рассмотрены основные приемы использования HTML-страницы и DOM для отображения элементов XML-документа. Эти приемы демонстрируются при помощи представленной в Листинге 1.28 HTML-страницы, отображающей содержимое каждого из дочерних элементов XML-документа из листинга 1.14.

<HTML>

<HEAD>

<TITLE>Описание книги</TTTLE>

<SCRIPT LANGUAGE="JavaScript" FOR="window" EVENT="ONLOAD">

Document = dsoBook.XMLDocument;

title.innerText=Document.documentElement.childNodes(0).text;

author.innerText=Document.documentElement.childNodes(1).text;

binding.innerText=Document.documentElement.childNodes(2).text;

pages.innerText=Document.documentElement.childNodes(3).text;

price.innerText=Document.documentElement.childNodes(4).text;

</SCRIPT>

</HEAD>

<BODY>

<XML ID="dsoBook" SRC="Book.xml"></XML>

<H2>Описание книги</H2>

<SPAN STYLE="font-style:italic">Заголовок: </SPAN>

<SPAN ID="title" STYLE="font-weight:bold"></SPAN>

<BR>

<SPAN STYLE="font-style:italic">Автор: </SPAN>

<SPAN ID="author"></SPAN>

<BR>

<SPAN STYLE="font-style:italic">Обложка: </SPAN>

<SPAN ID="binding"></SPAN>

<BR>

<SPAN STYLE="font-style:italic">Количество страниц: </SPAN>

<SPAN ID="pages"></SPAN>

<BR>

<SPAN STYLE="font-style:italic">Цена: </SPAN>

<SPAN ID="price"></SPAN>

</BODY>

</HTML>

Листинг 1.28

На рисунке 47 показано как эта страница выглядит в Internet Explorer.

Рисунок 47. Отображение простого XML-документа с использованием структуры DOM

XML-документ связан со страницей через следующий фрагмент данных:

<XML ID="dsoBook" SRC="Book.xml></XML>

Страница отображает XML-документ посредством следующего блока кода сценария, который содержится в элементе HEAD страницы:

<SCRIPT LANGUAGE="JavaScript" FOR="window" EVENT="ONLOAD">

Document = dsoBook.XMLDocument;

title.innerText=Document.documentElement.childNodes(0)text;

author.innerText=Document.documentElement.childNodes(1)text;

binding.innerText=Document.documentElement.childNodes(2)text;

pages.innerText=Document.documentElement.childNodes(3)text;

price.innerText=Document.documentElement.childNodes(4)text;

</SCRIPT>

Установки атрибутов FOR="window" и EVENT="ONLOAD" предписывают браузеру выполнять код из элемента SCRIPT при первом открытии окна страницы до того, как будет отображено содержимое страницы. (Примеры сценариев в этой главе написаны на языке Microsoft JScript - версии Microsoft родового языка для сценариев JavaScript.)

Сценарий первым делом получает узел Document, который представляет весь документ и формирует корневой элемент иерархии узлов DOM. Он делает это через член XMLDocument DSO, как было описано ранее в этой главе:

Document = dsoBook.XMLDocument;

Далее сценарий получает доступ и отображает символьные данные, содержащиеся в каждом из дочерних элементов корневого элемента (TITLE, AUTHOR, BINDING, PAGES и PRICE). Например, он отображает содержимое первого дочернего элемента (TITLE) следующим образом:

title.innerText=Document.documentElement.childNodes(0).text;

Вот пояснение выражения, стоящего справа от знака равенства.

  • Document. содержит узел Document в основании (корне) иерархии узлов DOM.

  • documentElement. представляет собой свойство узла Document. Оно содержит узел Element, представляющий корневой элемент XML-др-кумента - в нашем примере, BOOK. Свойство documentElement является одним из специфических для конкретного узла свойств, предоставляемых узлом типа Document. В таблице 5.22 представлены другие полезные свойства, а также методы, относящиеся к узлу Document. Для узла Document можно использовать и общие свойства узлов, представленные в таблице 5.21.

Таблица 5.22