English | >> Français << | Deutsch | Magyar | 中文 | Polski ZVON > Tutorials > XSLT Tutorial
>> Page 39 << | Précédent | Suivant | Contenu | Index des éléments

La fonction sum() additionne tous les nombres des noeuds sélectionnés. Feuille de style XSLT 1 additionne tous les nombres, tandis que Feuille de style XSLT 2 n'additionne que les nombres impairs.

Feuille de style XSLT 1

Source XML
<source>

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

</source>

Sortie
1 + 3 + 4 + 17 + 8 + 11 = 44

Vue HTML
1 + 3 + 4 + 17 + 8 + 11 = 44
Feuille de style XSLT
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <xsl:for-each select="//number">
          <xsl:value-of select="."/>
          <xsl:choose>
               <xsl:when test="position()=last()">
                    <xsl:text> = </xsl:text>
               </xsl:when>
               <xsl:otherwise>
                    <xsl:text> + </xsl:text>
               </xsl:otherwise>
          </xsl:choose>
     </xsl:for-each>
     <xsl:value-of select="sum(//number)"/>
</xsl:template>


</xsl:stylesheet>


Feuille de style XSLT 2

Source XML
<source>

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

</source>

Sortie
1 + 3 + 17 + 11 = 32

Vue HTML
1 + 3 + 17 + 11 = 32
Feuille de style XSLT
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <xsl:for-each select="//number[text() mod 2 = 1]">
          <xsl:value-of select="."/>
          <xsl:choose>
               <xsl:when test="position()=last()">
                    <xsl:text> = </xsl:text>
               </xsl:when>
               <xsl:otherwise>
                    <xsl:text> + </xsl:text>
               </xsl:otherwise>
          </xsl:choose>
     </xsl:for-each>
     <xsl:value-of select="sum(//number[text() mod 2 = 1])"/>
</xsl:template>


</xsl:stylesheet>