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

Сложение, вычитание и умножение осуществляется обычным способом (преобразование 1). Синтаксис для деления немного отличается от традиционного. Символ "/" зарезервирован для путей адресации и вместо него для обозначения деления используется ключевое слово div (преобразование 2). Оператор mod возвращает остаток от деления нацело (преобразование 2).

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

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

<number>1</number>
<number>3</number>
<number>4</number>
<number>17</number>
<number>8</number>
<number>11</number>

</source>

Результат
<P>1 + 3 = 4</P>
<P>4 - 17 = -13</P>
<P>8 * 11 = 88</P>

Представление HTML

1 + 3 = 4

4 - 17 = -13

8 * 11 = 88

Преобразование XSLT
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <P>
          <xsl:value-of select="//number[1]"/>
          <xsl:text> + </xsl:text>
          <xsl:value-of select="//number[2]"/>
          <xsl:text> = </xsl:text>
          <xsl:value-of select="//number[1] + //number[2]"/>
     </P>
     <P>
          <xsl:value-of select="//number[3]"/>
          <xsl:text> - </xsl:text>
          <xsl:value-of select="//number[4]"/>
          <xsl:text> = </xsl:text>
          <xsl:value-of select="//number[3] - //number[4]"/>
     </P>
     <P>
          <xsl:value-of select="//number[5]"/>
          <xsl:text> * </xsl:text>
          <xsl:value-of select="//number[6]"/>
          <xsl:text> = </xsl:text>
          <xsl:value-of select="//number[5] * //number[6]"/>
     </P>
</xsl:template>


</xsl:stylesheet>



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

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

<number>1</number>
<number>3</number>
<number>4</number>
<number>17</number>
<number>8</number>
<number>11</number>

</source>

Результат
<P>8 / 11 = 0.7272727272727273</P>
<P>8 mod 11 = 8</P>

Представление HTML

8 / 11 = 0.7272727272727273

8 mod 11 = 8

Преобразование XSLT
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <P>
          <xsl:value-of select="//number[5]"/>
          <xsl:text> / </xsl:text>
          <xsl:value-of select="//number[6]"/>
          <xsl:text> = </xsl:text>
          <xsl:value-of select="//number[5] div //number[6]"/>
     </P>
     <P>
          <xsl:value-of select="//number[5]"/>
          <xsl:text> mod </xsl:text>
          <xsl:value-of select="//number[6]"/>
          <xsl:text> = </xsl:text>
          <xsl:value-of select="//number[5] mod //number[6]"/>
     </P>
</xsl:template>


</xsl:stylesheet>

Raleigh.ru Copyright © 2002