=> Главная База Знаний Xslt Substring()


Substring()

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>


 <xsl:template match="PLANET">

  <xsl:if test="NAME='Mercury'">

   The first planet is

   <xsl:value-of select="concat(substring-before(NAME, 'с'),

    substring(NAME, 4, 1), substring-after(NAME, 'c'))"/>.

   <BR/>

  </xsl:if>

 </xsl:template>


 <xsl:template match="*">

 </xsl:template>

</xsl:stylesheet>

Вот результирующий документ, созданный этим преобразованием:

<HTML>

 <HEAD>

  <TITLE>

   Planetary Information

  </TITLE>

 </HEAD>

 <BODY>

  <H1>

   Planetary Information

  </H1>

  The first planet is Mercury.

  <BR>

 </BODY>

</HTML>