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

Валиков Алексей Н.

Шрифт:

 <xsl:param name="delimiter" select="','"/>

 <xsl:choose>

<xsl:when test="contains($str,$delimiter)">

<xsl:call-template name="item">

<xsl:with-param name="item"

select="substring-before($str, $delimiter)"/>

</xsl:call-template>

<xsl:call-template name="markup">

<xsl:with-param name="str"

select="substring-after($str, $delimiter)"/>

</xsl:call-template>

<xsl:with-param name="delimiter" select="$delimiter"/>

</xsl:when>

<xsl:otherwise>

<xsl:call-template name="item">

<xsl:with-param name="item" select="$str"/>

</xsl:call-template>

</xsl:otherwise>

 </xsl:choose>

</xsl:template>

На вход шаблон markup принимает два параметра —

str
, строка, которую нужно разметить (по умолчанию — значение текущего узла) и
delimiter
— строка, разделяющая отдельные значения в
str
(по умолчанию — запятая "
,
").

Шаблон, форматирующий содержимое элемента

data
, будет в таком случае выглядеть следующим образом:

<xsl:template match="data">

 <xsl:copy>

<xsl:apply-templates mode="CSV"/>

 </xsl:copy>

</xsl:template>

Результат этого преобразования будет иметь следующий вид:

<data>

 <item>a</item>

 <item> b</item>

 <item> c</item>

 <item> d</item>

 <item> e</item>

 <item> f</item>

</data>

Обратим внимание на то, что в элементах

item
присутствуют лишние пробелы, которые в начальной последовательности шли за запятыми. Избавиться от них можно, указав в качестве разделяющей строки символ "
,
":

<xsl:template match="data">

 <xsl:copy>

<xsl:apply-templates mode="CSV">

<xsl:with-param name="delimiter" select="', '"/>

</xsl:apply-templates>

 </xsl:copy>

</xsl:template>

Результатом, как и следовало ожидать, будет:

<data>

 <item>a</item>

 <item>b</item>

 <item>c</item>

 <item>d</item>

 <item>e</item>

 <item>f</item>

</data>

Кстати сказать, того же эффекта можно было добиться, изменив шаблон

item
, который отвечает за XML-представление каждого из элементов последовательности.

Глава 12

Развитие технологий

Как известно, успех технологии зависит не только от того, насколько продумана и проработана она была. Ее широкое распространение невозможно без поддержки и заинтересованности ведущих производителей программного обеспечения. В этом смысле XSLT очень повезло: имплементациями языка с самых ранних черновых вариантов занимались такие крупные разработчики, как Microsoft, Oracle, IBM, Adobe, Lotus и многие другие. Поддержка Apache XML Project помогла XSLT завоевать популярность и среди open-source сообщества (open-source — разработки с "открытым" исходным кодом).

Так или иначе, сейчас следует лишь констатировать стабильный рост популярности XSLT. Количество XSLT-процессоров уже исчисляется десятками, а число разработчиков — пожалуй, что и тысячами.

Повышенный интерес помог в чрезвычайно короткий срок (менее года) изучить на практике недостатки и достоинства нового языка и приступить к разработке последующих версий, которые бы учитывали эти практические результаты. В декабре 2000 года была выпущена версия 1.1,. в которой было не только исправлено большинство основных проблем первой версии XSLT, но и включены очень важные дополнения — такие, например, как определение интерфейсов расширений для языков Java и JavaScript/ECMAScript. В августе 2001 года версии 1.1 дали статус Final Draft и положили на полку — она никогда не будет стандартом (технической рекомендацией Консорциума W3).

  • Читать дальше
  • 1
  • ...
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • ...

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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