[XSLT 1.0] Somme et transformation
Bonjour à tous,
en partant du XML suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| <Groupe>
<Items>
<Item>
<total>+15</total>
</Item>
<Item>
<total>+13</total>
</Item>
</Items>
<Items>
<Item>
<total>+19</total>
</Item>
</Items>
</Groupe>
<Groupe>
<Items>
<Item>
<total>+12</total>
</Item>
</Items>
<Items>
<Item>
<total>+19</total>
</Item>
<Item>
<total>+23</total>
</Item>
<Item>
<total>+8</total>
</Item>
</Items>
<Items>
<Item>
<total>+17</total>
</Item>
<Item>
<total>+2</total>
</Item>
</Items>
</Groupe> |
j'essaie de remplir un tableau avec le total de chaque balise <Items/>; j'utilise la transformation XSLT suivante:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| <xsl:decimal-format name="francais" decimal-separator="," grouping-separator="."/>
.
.
.
<xsl:for-each select="//Groupe">
<tr>
<td>
<xsl:element name="span">
<xsl:for-each select="Items/Item">
<xsl:variable name="test" select="number(translate(total, '+', ''))" />
<xsl:variable name="sTotal" select="sum($test)"/>
<xsl:choose>
<xsl:when test="$total >= 0">
<xsl:attribute name="class">
positiveFigure
</xsl:attribute>
</xsl:when>
<xsl:when test="translate($sTotal, '+', '') < 0">
<xsl:attribute name="class">
negativeFigure
</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="class">
negativeFigure
</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:value-of select="format-number(translate($sTotal, '+', ''), '### ### ##0,00', 'francais')"/>
</xsl:for-each>
</xsl:element>
</td>
</tr>
</xsl:for-each> |
mais il me retourne à chaque fois "NaNNaN €"; j'ai beau modifier le code, soit il ne crée pas le tableau, soit il me met "NaNNaN €". Quelqu'un aurait-il une solution? Merci d'avance.