Главная -> XML&... -> XSLT в примерах 
>> Страница 51 << | Назад | Вперед | Содержание | Указатель

Функция string-length() возвращает количество символов в строке. Функция normalize-space() производит так называемую нормализацию строкового аргумента относительно пробелов. Она удаляет пробелы в начале и в конце строки, а все последовательности пробелов в теле строки заменяются одиночным пробелом.

Преобразование 1

Исходный XML
<source>

<P>
     <text>Normalized text</text>
     <text>Sequences of whitespace characters</text>
     <text> Leading and trailing whitespace. </text>
</P>

</source>

Результат
<TABLE>
  <TR>
     <TH colspan="4">Normalized text</TH>
  </TR>
  <TR>
     <TD>Starting length:</TD>
     <TD>15</TD>
     <TD>Normalized length:</TD>
     <TD>15</TD>
  </TR>
  <TR>
     <TH colspan="4">Sequences   of      whitespace characters</TH>
  </TR>
  <TR>
     <TD>Starting length:</TD>
     <TD>41</TD>
     <TD>Normalized length:</TD>
     <TD>34</TD>
  </TR>
  <TR>
     <TH colspan="4">    Leading and trailing whitespace.    </TH>
  </TR>
  <TR>
     <TD>Starting length:</TD>
     <TD>40</TD>
     <TD>Normalized length:</TD>
     <TD>32</TD>
  </TR>
</TABLE>

Представление HTML
Normalized text
Starting length: 15 Normalized length: 15
Sequences of whitespace characters
Starting length: 41 Normalized length: 34
Leading and trailing whitespace.
Starting length: 40 Normalized length: 32
Преобразование XSLT
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <TABLE>
          <xsl:for-each select="//text">
               <TR>
                    <TH colspan="4">
                         <xsl:value-of select="."/>
                    </TH>
               </TR>
               <TR>
                    <TD>Starting length:</TD>
                    <TD>
                         <xsl:value-of select="string-length(.)"/>
                    </TD>
                    <TD>Normalized length:</TD>
                    <TD>
                         <xsl:value-of select="string-length(normalize-space(.))"/>
                    </TD>
               </TR>
          </xsl:for-each>
     </TABLE>
</xsl:template>


</xsl:stylesheet>

Raleigh.ru Copyright © 2002