[XML][XSLT][debutant]retour d'une fonction
Bonjour,
Je suis débutant en XSLT mais j'ai déjà quand meme regarder quelques tuto. Si j'ai bien compris il faut faire du récursif et on ne peut pas ré-assigner une variable. Mais j'ai d'autres questions:
- Est ce qu'une fonction peut retourner une valeur qui pourra être réutilisée comme parametre lors de l'appel à une autre fonction.
- Pourquoi le code suivant ne marche pas? Comment faire autrement?
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
|
<xsl:template name="displayScaleHeader">
<div style="width: 100%;text-align: center;">
<table cellspacing="0" cellpadding="0" rules="rows" border="0" style="width: 100%; border-collapse: collapse; border: solid 1px #CCCCCC;">
<tr>
<th style="text-align: center;">Date</th>
<th style="text-align: center;">Movements</th>
<th style="text-align: center;">Balances</th>
</tr>
</xsl:template>
<xsl:template match="/">
............
<xsl:call-template name="displayScaleHeader"></xsl:call-template>
<xsl:for-each select="PREVIOUS_BALANCE">
<tr>
<td style="text-align: right;"><xsl:value-of select="DATE_FORMATED"/></td>
<td style="text-align: left;"><label class="TEXTE_NOIR">Previous Balance</label></td>
<td style="text-align: right;">
<xsl:if test="BALANCE_DEBIT != ''">
<xsl:value-of select="BALANCE_DEBIT"/>
</xsl:if>
</td>
</tr>
</xsl:for-each>
</table>
</div>
........
</xsl:template> |
Re: [XML][XSLT][debutant]retour d'une fonction
Citation:
Envoyé par maxvador
- Est ce qu'une fonction peut retourner une valeur qui pourra être réutilisée comme parametre lors de l'appel à une autre fonction.
Oui/non
1) il n'y a pas de fonction et, le call- template n'a pas de propriété "return"
2) On peut passer outre en faisant le call-template dans une variable et en l'utilisant
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| .....
<xsl:variable version="res"><xsl:call-template name="test"></xsl:call-template></xsl:variable>
<xsl:call-template name="testbis">
<xsl:with-param name="val" select="$res"/>
</xsl:call-template>
.....
<xsl:template name="test">
<a>le test</a>
</xsl:template>
<xsl:template name="testbis">
<xsl:param name="val"/>
<xsl:value-of select="$val"/>
</xsl:template> |
Citation:
Envoyé par maxvador
- Pourquoi le code suivant ne marche pas? Comment faire autrement?
Code xml non valide, tu ouvres ta table dans le premier template mais ne l'y ferme pas