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

на главную - закладки

Жанры

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

Шрифт:

<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">

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

Товарищ "Чума" 2

lanpirot
2. Товарищ "Чума"
Фантастика:
городское фэнтези
попаданцы
альтернативная история
5.00
рейтинг книги
Товарищ Чума 2

Барон диктует правила

Ренгач Евгений
4. Закон сильного
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Барон диктует правила

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

Винокуров Юрий
13. Кодекс Охотника
Фантастика:
боевая фантастика
попаданцы
аниме
7.50
рейтинг книги
Кодекс Охотника. Книга XIII

И.Бабель. Воспоминания современников

Паустовский Константин Георгиевич
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
И.Бабель. Воспоминания современников

Наномашины, наследник! Том 9

Новиков Николай Васильевич
9. Первый среди карапузов
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Наномашины, наследник! Том 9

Газлайтер. Том 1

Володин Григорий
1. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 1

Закрытые Миры

Муравьёв Константин Николаевич
Вселенная EVE Online
Фантастика:
фэнтези
5.86
рейтинг книги
Закрытые Миры

Неучтенный элемент. Том 2

NikL
2. Антимаг. Вне системы
Фантастика:
городское фэнтези
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 2

Законы Рода. Том 8

Мельник Андрей
8. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 8

Кодекс Крови. Книга ХVIII

Борзых М.
18. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХVIII

Гримуар темного лорда VI

Грехов Тимофей
6. Гримуар темного лорда
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Гримуар темного лорда VI

Долг

Кораблев Родион
7. Другая сторона
Фантастика:
боевая фантастика
5.56
рейтинг книги
Долг

Хозяин Стужи 2

Петров Максим Николаевич
2. Злой Лед
Фантастика:
аниме
фэнтези
попаданцы
5.75
рейтинг книги
Хозяин Стужи 2

Четники. Королевская армия

Тимофеев Алексей Юрьевич
Документальная литература:
биографии и мемуары
публицистика
5.00
рейтинг книги
Четники. Королевская армия