Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)






Использование нескольких шаблонов



 

Другой способ отображения повторяющихся XML-элементов состоит в создании отдельного шаблона для каждого элемента с последующим вызовом этого шаблона с использованием XSL-элемента apply-templates. Пример использования подобной методики приведен в XSL-таблице стилей, представленной в Листинге 1.39. Эта таблица стилей предназначена для связывания с XML-документом из Листинга 1.38; установить эту связь можно путем модификации инструкции xml-stylesheet в документе следующим образом:

 

<?xml-stylesheet type="text/xsl" href="XslDemo04.xsl"?>

 

<?xml version="1.0"?>

<!-- Имя файла: xslDemo04.xsl -->

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<xsl:template match="/">

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

<xsl:applay-templates select="INVENTORY/BOOK" /></xsl:template>

<xsl:template match="BOOK">

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

<xsl:value-of select="AUTHOR"/><BR/>

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

<xsl:value-of select="TITLE"/><BR/>

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

<xsl:value-of select="PRICE"/><BR/>

<SPAN STYLE="font-style:italic">Тип обложки: </SPAN>

<xsl:value-of select="BINDING"/><BR/>

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

<xsl:value-of select="PAGES"/><P />

</xsl:template>

</xsl:stylesheet>

Листинг 1.39

 

Рассматриваемая в примере таблица стилей содержит два шаблона. Один шаблон содержит инструкции для отображения всего документа (путем установки match="/", указывающей на корневую часть документа). Все XSL-таблицы стилей требуют наличия такого шаблона. Другой шаблон содержит инструкции для отображения элемента BOOK (шаблон с установкой match="BOOK"). Сначала браузер обрабатывает шаблон, соответствующий корневой части элемента:

 

<xsl:template match="/">

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

<xsl:apply-templates select="INVENTORY/BOOK" />

</xsl:template>

 

XSL-элемент apply-templates сообщает браузеру, что для каждого элемента BOOK внутри корневого элемента INVENTORY он должен обрабатывать шаблон, отвечающий элементу BOOK - т. е. шаблон, для атрибута match которого установлено значение "BOOK". Таблица стилей включает следующий шаблон, отвечающий элементу BOOK:



 

<xsl:template match="BOOK">

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

<xsl:value-of select="TITLE"/><BR/>

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

<xsl:value-of select="AUTHOR"/><BR/>

<SPAN STYLE="font-style:italic">Тип обложки: </SPAN>

<xsl:value-of select="BINDING"/><BR/>

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

<xsl:value-of select="PAGES"/><BR/>

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

<xsl:value-of select="PRICE"/><P/>

</xsl:template>

 

Поскольку этот шаблон отвечает элементу BOOK, элемент BOOK является текущим элементом в контексте шаблона. В связи с этим доступ к дочерним элементам BOOK осуществляется посредством образца, содержащего только имя элемента, как в примере:

 

<xsl:value-of select "TITLE"/>

 

Если не указать атрибут select для элемента apply-templates, браузер будет обрабатывать соответствующий шаблон (если он имеется) для каждого дочернего элемента текущего элемента. В рассматриваемом примере элемента apply-templates единственным дочерним элементом для текущего элемента (корневая часть документа) является элемент INVENTORY, который не имеет соответствующего шаблона. Таким образом, если опустить атрибут select, никакие данные не будут выведены.



Браузер обрабатывает шаблон BOOK один раз для каждого элемента BOOK, отображая всю информацию о книгах, имеющуюся в документе. Отображение XML-документа будет таким же, как и на рисунке 59.

 

Лабораторная работа №13

 

1. Создайте первую XSL-таблицу стилей с использованием XSL-элемента “for-each” для отображения XML-документа из лабораторной работы №1.

2. Вставьте в данный XML-документ инструкцию по обработке, использующую указанную XSL-таблицу стилей.

3. Сохраните оба файла в папке под своей фамилией.

4. Создайте вторую XSL-таблицу стилей с использованием нескольких шаблонов для отображения XML-документа из лабораторной работы №1.

5. Вставьте в данный XML-документ инструкцию по обработке, использующую указанную XSL-таблицу стилей.

6. Сохраните оба файла в папке под своей фамилией.

7. Откройте поочерёдно оба XML-документа для просмотра в браузере Internet Explorer.

8. При появлении сообщений об ошибках, постарайтесь их найти и устранить.

9. Сдайте работы преподавателю.

 


Эта страница нарушает авторские права

allrefrs.ru - 2019 год. Все права принадлежат их авторам!