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

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

Шрифт:

</TITLE>

</HEAD>

<BODY>

<H1>

The Planets Table

</H1>

<BR/>

<H1>

<xsl:value-of select="Date:toString(Date:new)"/>

</H1>

<TABLE BORDER="2">

<TD>Name</TD>

<TD>Mass</TD>

<TD>Radius</TD>

<TD>Day</TD>

<xsl:apply-templates/>

</TABLE>

</BODY>

</HTML>

 </xsl:template>

 <xsl:template match="PLANET">

<TR>

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

<TD><xsl:apply-templates select="MASS"/></TD>

<TD><xsl:apply-templates select="RADIUS"/></TD>

<TD><xsl:applу-templates select="DAY"/></TD>

</TR>

 </xsl:template>

 <xsl:template match="MASS">

<xsl:value-of select="."/>

 </xsl:template>

 <xsl:template match="RADIUS">

<xsl:value-of select="."/>

 </xsl:template>

 <xsl:template match="DAY">

<xsl:value-of select="."/>

 </xsl:template>

</xsl:stylesheet>

Результат применения этой функции приведён на рис. 5.3.

Рис. 5.3. Применение функции расширения 

Вот работоспособная схема и заодно веский повод включить Java в XSLT. Тем не менее, в XSLT 1.1 был представлен элемент

<xsl:script>
, который, по всей видимости, будет включен и в XSLT 2.0.

Элемент <xsl:script>

Элемент

<xsl:script>
был определен в рабочем проекте XSLT 1.1, он предоставляет хорошо определенный способ связи функций расширения с таблицами стилей XSLT. Это элемент верхнего уровня, обладающий следующими атрибутами:

• 

implements-prefix
(необязательный). Задает имя пространства имен функции расширения, которую реализует этот элемент. Принимает значение
NCNAME
;

• 

language
(необязательный). Задает язык, используемый функцией расширения. Устанавливается в «
ecmascript
» (стандарт JavaScript), «
javascript
», «
java
» или QNAME, не являющееся NCNAME;

• 

src
(необязательный). Предоставляет URI, в котором реализована функция расширения. Например, это может быть класс Java;

• 

archive
(необязательный). Задает архивы, которые необходимо загрузить перед запуском функции расширения, если они есть. Принимает значения списка URI, разделенного символами-разделителями.

Элемент содержит символьные данные (Microsoft использует раздел

CDATA
), реализующие функцию или функции расширения.

Как теперь связать функцию, определенную в элементе

<xsl:script>
, с вашей таблицей стилей XSLT? Сначала создайте в своей таблице стилей элемент
<xsl:script>
как элемент верхнего уровня, затем поместите в него функции, которые вы хотите определить. В приведенном ниже примере я определяю две функции JavaScript,
makeMoney
(сделать деньги) и
makeMoreMoney
(сделать еще больше денег), в элементе
<xsl:script>
, реализующем пространство имен расширений «
starpowder
»:

<xsl:script implements prefix="starpowder" language="javascript">

function makeMoney(e) {

 .

 .

 .

}

function makeMoreMoney(e) {

 .

 .

 .

}

</xsl:script>

В зависимости от вашего процессора XSLT, может оказаться хорошим решением заключить такого рода сценарии в раздел CDATA:

  • Читать дальше
  • 1
  • ...
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • ...

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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