Вход/Регистрация
XSLT
вернуться

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

Шрифт:

Элемент

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

<xsl:copy use-attribute-sets="numbering">

<xsl:apply-templates/>

</xsl:copy>

 </xsl:template>

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

<xsl:attribute name="number"><xsl:number/></xsl:attribute>

<xsl:attribute name="total"><xsl:value-of select="count(//PLANET)"/>

 </xsl:attribute>

</xsl:attribute-set>

</xsl:stylesheet>

Обратите внимание на то, что в результирующем документе каждый элемент

<PLANET>
имеет атрибуты
number
и
total
: 

<?xml version="1.0" encoding="UTF-8"?> <PLANETS>

<PLANET number="1" total="3">

<NAME>Mercury</NAME> <MASS>.0553</MASS> <DAY>58.65</DAY> <RADIUS>1516</RADIUS> <DENSITY>.983</DENSITY> <DISTANCE>43.4</DISTANCE> </PLANET>

  • Читать дальше
  • 1
  • ...
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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