Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ППТС-2 / Лекции / Lect4-07.doc
Скачиваний:
7
Добавлен:
12.05.2015
Размер:
332.29 Кб
Скачать

5.3.8.3. Элементxsl:attribute-set

Для того чтобы упростить создание в элементах целых наборов атрибутов, можно заранее определить их в элементе xsl:attribute-set, который имеет следующий синтаксис:

<xsl:attribute-set

name="имя"

use-attribute-sets="имена"

>

<!--

Содержимое: элементы xsl:attribute

-->

</xsl:attribute-set>

Обязательный атрибут nameзадает имя набора атрибутов. В атрибутеuse-attribute-setsчерез про­бел перечисляются имена наборов атрибутов, которые должны быть исполь­зованы в данном элементе.

Элемент xsl:attribute-setсо­держит последовательность, состоящую из нуля или более элементовxsl:attribute.

Именованные наборы атрибутов можно использовать, указывая их имена в значении атрибута use-attribute-sets, который может присутствовать в элементахxsl:element,xsl:copyиxsl:attribute-set, а также в литеральных результирующих элементах.

Включение набора атрибутов в элемент равносильно простому копированию элементов xsl:attribute, определенных в соответствующих элементахxsl:attribute-set.

Пример использования элементов xsl:element, xsl:attribute и xsl:attribute-set:

Следующая таблица стилей формирует документ HTMLдля вывода тем сообщений в документеXMLmessage.xml:

<?xml version="1.0" encoding="windows-1251"?>

<xsl:stylesheet version="2.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="html" version="4.0"

encoding="windows-1251" indent="yes"/>

<xsl:attribute-set name="hrAttrs">

<xsl:attribute name="width">25%</xsl:attribute>

<xsl:attribute name="color">green</xsl:attribute>

<xsl:attribute name="align">left</xsl:attribute>

</xsl:attribute-set>

<!-- Формирование выходного документа HTML -->

<xsl:template match="/">

<html>

<head>

<title>Вывод тем сообщений</title>

<style type="text/css">

.red {color:red}

.bold {font-weight:bold}

</style>

</head>

<body>

<!-- Применение правила шаблона для элемента message -->

<xsl:apply-templates

select="email-folder/message"/>

<!-- Задание элемента hr -->

<xsl:element name="hr"

use-attribute-sets="hrAttrs"/>

</body>

</html>

</xsl:template>

<!-- Задание правила шаблона для элемента message -->

<xsl:template match="message">

<!-- Задание элемента hr -->

<xsl:element name="hr"

use-attribute-sets="hrAttrs"/>

<!-- Задание элемента p -->

<p class="bold">Тема:

<!-- Задание элемента span -->

<xsl:element name="span">

<!-- Задание атрибута class для элемента span -->

<xsl:attribute

name="class">red</xsl:attribute>

<!-- Получение значения для элемента subject -->

<xsl:apply-templates

select="./header/subject/text()"/>

</xsl:element>

</p>

</xsl:template>

</xsl:stylesheet>

В результате преобразования документ HTMLбудет иметь следующий вид:

<html>

<head>

<meta http-equiv="Content-Type"

content="text/html; charset=windows-1251">

<title>Вывод тем сообщений</title>

<style type="text/css">

.red {color:red}

.bold {font-weight:bold}

</style>

</head>

<body>

<hr width="25%" color="green" align="left">

<p class="bold">Тема:<span

class="red">Поздравление</span></p>

<hr width="25%" color="green" align="left">

<p class="bold">Тема: <span

class="red">Напоминание</span></p>

<hr width="25%" color="green" align="left">

<p class="bold">Тема: <span

class="red">Отказ</span></p>

<hr width="25%" color="green" align="left">

<p class="bold">Тема: <span

class="red">Вопрос</span></p>

<hr width="25%" color="green" align="left">

<p class="bold">Тема: <span

class="red">Ответ</span></p>

<hr width="25%" color="green" align="left">

</body>

</html>

и в Web-браузере будет выведено:

Файл: Создан:16.03.2008Модифицирован:10.01.2012Автор:Шонин В.А.

Соседние файлы в папке Лекции