string-length()

Как можно предположить, функция string-length возвращает длину (length) переданной ей строки. Функция применяется таким образом:

number string-length(string?)

В следующем примере я определяю длину названия каждой планеты при помощи string- length:

<?xml version='1.0'?>

<xsl:stylesheet version='1.0'

 xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

 <xsl:template match='/PLANETS'>

  <HTML>

   <HEAD>

    <TITLE>

     Length of Planet Names

    </TITLE>

   </HEAD>

   <BODY>

    <H1>

     Length of Planet Names

    </H1>

    <xsl:apply-templates/>

   </BODY>

  </HTML>

 </xsl:template>

 <xsl:template match='PLANET'>

  <xsl:value-of select='NAME'/> is

  <xsl:value-of select-'string-length(NAME)'/>

  characters long.

  <BR/>

 </xsl:template>

 <xsl:template match='*'>

 </xsl:template>

</xsl:stylesheet>

А вот результат:

<HTML>

 <HEAD>

  <TITLE>

   Length of Planet Names

  </TITLE>

 </HEAD>

 <BODY>

  <H1>

   Length of Planet Names

  </H1>

  Mercury is 7 characters long.

  <BR>

  Venus is 5 characters long.

  <BR>

  Earth is 5 characters long.

  <BR>

 </BODY>

</HTML>

Этот результирующий документ показан на рис. 8.2.

Рис. 8.2. Определение длины строк в XSLT

substring()

Функция substring возвращает подстроку переданной ей строки. Функция применяется следующим образом:

string substring(source-string, start-position, number-of-characters?)

Функция принимает параметры source-string (исходная строка), start- position (начальная позиция) и необязательный параметр number-of-characters (количество символов). Функция возвращает подстроку исходной строки с начальной позиции и до указанного количества символов или до конца строки, если это количество не задано.

Функция substring — одна из трех функций, оперирующих с подстроками: substring-before, возвращающая строку перед найденной подстрокой, сама substring, возвращающая заданную подстроку, и substring-after, возвращающая строку после найденной подстроки. В следующем примере (листинг 8.9) задействованы все три функции: в этом случае я разбил название планеты Меркурий (Mercury) на три подстроки — «Mer», «c» и «ury» — и затем объединил их снова. Вот как это можно сделать при помощи трех рассматриваемых функций (дополнительная информация о substring-before и substring-after приведена в следующих двух разделах).

Листинг 8.9. Применение функций substring-before, substring и substring-after

<?xml version='1.0'?>

<xsl:stylesheet version='1.0'

 xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

 <xsl:template match='/PLANETS'>

  <HTML>

   <HEAD>

    <TITLE>

     Planetary Information

    </TITLE>

   </HEAD>

   <BODY>

    <H1>

     Planetary Information

    </H1>

    <xsl:apply-templates/>

   </BODY>

  </HTML>

 </xsl:template>

Вы читаете XSLT
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату