xsl et particulierement xsl:param

xsl et particulierement xsl:param - XML/XSL - Programmation

Marsh Posté le 07-10-2004 à 18:16:56    

Salut  
 
J'ai un template style ca:
 

Code :
  1. <xsl:template name="statsme">
  2. <xsl:param name="sum" />
  3. </xsl:template>


 
je veux ajouter au param sum la valeur contenue dans la balise val du node p soit un truc su style
 

Code :
  1. <xsl:if test="P/val">
  2. //<! -- $p=select"P/val + $p" -->  
  3. </xsl:if>


 
le but etant ( dans cette exemple ici) d'additioner tous les val des P  
en apellant un template nommé avec parametres.
 
avec  

Code :
  1. <xsl:param name="sum" select="0"/>
  2. <xsl:for-each select="A">
  3. <xsl:call-template name ="statsme">
  4. <xsl:with-param name="sum"   select="$sum"  />
  5. </xsl:call-template>
  6. </xsl:for-each>


 
ma question est donc : par quoi remplacer la ligne commentee (<! -- $p=select"P/val + $p" -->  )pour faire ce que je veux
 
FK
parce que moi aussi je le veux bien

Reply

Marsh Posté le 07-10-2004 à 18:16:56   

Reply

Marsh Posté le 20-10-2004 à 14:00:53    

frenchkiss a écrit :

Salut  
 
J'ai un template style ca:
 

Code :
  1. <xsl:template name="statsme">
  2. <xsl:param name="sum" />
  3. </xsl:template>


 
je veux ajouter au param sum la valeur contenue dans la balise val du node p soit un truc su style
 

Code :
  1. <xsl:if test="P/val">
  2. //<! -- $p=select"P/val + $p" -->  
  3. </xsl:if>


 
le but etant ( dans cette exemple ici) d'additioner tous les val des P  
en apellant un template nommé avec parametres.
 
avec  

Code :
  1. <xsl:param name="sum" select="0"/>
  2. <xsl:for-each select="A">
  3. <xsl:call-template name ="statsme">
  4. <xsl:with-param name="sum"   select="$sum"  />
  5. </xsl:call-template>
  6. </xsl:for-each>


 
ma question est donc : par quoi remplacer la ligne commentee (<! -- $p=select"P/val + $p" -->  )pour faire ce que je veux
 
FK
parce que moi aussi je le veux bien


 
De memoire, tu ne peux pas conditionner l'affectation d'un xsl-param dans un template. Il faut plutot mettre une condition sur le call template... donc ds un cas tu appelles le template avec ta variable a une valeur, et dans l'autre tu appelles le m template avec des valeurs différentes.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed