Чтение онлайн

на главную

Жанры

Холзнер Стивен

Шрифт:

<BODY>

<H1>This is frame 1.</H1>

</BODY>

</HTML>

</xsl:document>

<FRAME src="frame2.html"/>

<xsl:document href="#">

<HTML>

<HEAD>

<TITLE>

Frame 2

</TITLE>

</HEAD>

<BODY>

<H1>This is frame 2.</H1>

</BODY>

</HTML>

</xsl:document>

 </FRAMESET>

</HTML>

ПРИМЕР

ТОЛЬКО ДЛЯ XSLT 1.1

Обратите внимание на то, что этот пример предназначен только для рабочего проекта XSLT 1.1. Ни один из известных мне доступных процессоров XSLT пока не обрабатывает элемент <xsl:document>.

Элемент <xsl:namespace>: создание объявлений пространств имен

В XSLT 2.0 включен еще один новый элемент:

<xsl:namespace>
, позволяющий добавлять в результирующий документ объявления пространств имен. Однако на текущий момент больше об этом элементе ничего не известно, так что я не могу дать здесь более подробную информацию. Следите за web-узлом W3C.

Элемент <xsl:attribute-set>: создание наборов атрибутов

Иногда при создании нового элемента возникает потребность добавить в него сразу несколько атрибутов. Существует простой способ сделать это при помощи элемента

<xsl:attribute-set>
. У этого элемента два атрибута:

• 

name
(обязательный). Имя набора атрибутов. Устанавливается в
QName
;

• 

use-attribute-sets
(необязательный). Имена других наборов атрибутов, которые вы хотите включить в этот набор. Устанавливается в список
QName
, разделенных символами-разделителями.

Элемент

<xsl:attribute-set>
содержит элементы
<xsl:attribute>
, по одному для каждого нового создаваемого атрибута. При использовании
<xsl:attribute-set>
для создания нового набора атрибутов элемента нужно задать имя набору. Затем при создании нового элемента для использования набора атрибутов это имя можно присваивать атрибуту
use-attribute-sets
элементов
<xsl:copy>
,
<xsl:element>
,
<xsl:for-each>
и даже самого элемента
<xsl:attribute-set>
.

Ранее в текущей главе мы уже рассматривали один пример применения наборов атрибутов в JavaScript при создании шаблона. В том примере я при помощи набора атрибутов задавал все атрибуты HTML-кнопок

планет и затем создавал их, используя этот набор атрибутов в элементе
<xsl:element>
:

<BODY>

<CENTER>

<H1>The Mass Page</H1>

</CENTER>

<xsl:for-each select="PLANET">

<P/>

<xsl:element name="input" use-attribute-sets="attribs"/>

</xsl:for-each>

<P/>

<P/>

<DIV ID='display'></DIV>

</BODY>

 </HTML>

</xsl:template>

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

 <xsl:attribute name="type">BUTTON</xsl:attribute>

 <xsl:attribute name="value"><xsl:value-of select="NAME"/></xsl:attribute>

 <xsl:attribute name="onclick"><xsl:value-of select="NAME"/></xslt:attribute>

</xsl:attribute-set>

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

<Р></Р>

<input type="BUTTON"value="Mercury" onclick="Mercury">

<input type="BUTTON" value="Venus" onclick="Venus">

<input type='BUTTON" value="Earth" onclick="Earth">

В листинге 6.11 я воспользуюсь набором атрибутов для нумерации планет в

planets.xml
. Каждому элементу
<PLANET>
я добавил два атрибута:
number
и
total
. В атрибуте
number
будет храниться номер планеты начиная с 1, а атрибут
total
будет содержать общее число планет в
planets.xml
, которое можно найти при помощи функции
count
(мы рассмотрим ее в главе 8).

Листинг 6.11. Применение <xsl:attribute-set>

<xsl:stylesheet

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

 <xsl:output method="xml" indent="yes"/>

 <xsl:template match="*">

<xsl:copy>

<xsl:apply-templates/>

</xsl:copy>

 </xsl:template>

 <xsl:template match="PLANET">

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

Наследник и новый Новосиб

Тарс Элиан
7. Десять Принцев Российской Империи
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник и новый Новосиб

Сумеречный стрелок 8

Карелин Сергей Витальевич
8. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Сумеречный стрелок 8

Идеальный мир для Социопата 2

Сапфир Олег
2. Социопат
Фантастика:
боевая фантастика
рпг
6.11
рейтинг книги
Идеальный мир для Социопата 2

Краш-тест для майора

Рам Янка
3. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
эро литература
6.25
рейтинг книги
Краш-тест для майора

Идеальный мир для Социопата 6

Сапфир Олег
6. Социопат
Фантастика:
боевая фантастика
рпг
6.38
рейтинг книги
Идеальный мир для Социопата 6

Королевская Академия Магии. Неестественный Отбор

Самсонова Наталья
Любовные романы:
любовно-фантастические романы
8.22
рейтинг книги
Королевская Академия Магии. Неестественный Отбор

Ненаглядная жена его светлости

Зика Натаэль
Любовные романы:
любовно-фантастические романы
6.23
рейтинг книги
Ненаглядная жена его светлости

Кодекс Охотника. Книга V

Винокуров Юрий
5. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
4.50
рейтинг книги
Кодекс Охотника. Книга V

Его наследник

Безрукова Елена
1. Наследники Сильных
Любовные романы:
современные любовные романы
эро литература
5.87
рейтинг книги
Его наследник

Кодекс Охотника. Книга XXI

Винокуров Юрий
21. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XXI

Бальмануг. (Не) Любовница 2

Лашина Полина
4. Мир Десяти
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Бальмануг. (Не) Любовница 2

Корпулентные достоинства, или Знатный переполох. Дилогия

Цвик Катерина Александровна
Фантастика:
юмористическая фантастика
7.53
рейтинг книги
Корпулентные достоинства, или Знатный переполох. Дилогия

Идеальный мир для Лекаря 3

Сапфир Олег
3. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 3

Возмездие

Злобин Михаил
4. О чем молчат могилы
Фантастика:
фэнтези
7.47
рейтинг книги
Возмездие