Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/01/2009, 11:54
wigglyUtrera
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 4 meses
Puntos: 3
XSL: Sumar valores en en for-each

Hola, llevo dandole vueltas un rato a esto y no consigo hacerlo. se trata de este codigo XML:

Código:
<matriculas>
               <matricula cod_asig="A1">
	          <examen convocatoria="Febrero">
                     <fecha> 28-1-2004 </fecha> 
                     <nota> 7.5 </nota>
	          </examen>
	       </matricula>
              ...
Se trata de sumar todas las notas de cada una de las convocatorias de las asignaturas, es decir de la asignatura A1, sumar las notas de la convocatoria de Febrero, aparte sumar las de Junio y aparte las de Septiembre.

He hecho una variable:

Código:
<xsl:variable name="tmpTotal">
             <xsl:for-each select="key('matricula',@cod_asig)" >
                 <xsl:if test='examen/@convocatoria = "Febrero"'>
                    <xsl:value-of select="(examen/nota)"/>
                 </xsl:if>
             </xsl:for-each>
       </xsl:variable>
cuando imprimo la variable me sale:

Código:
7.5 9.0
es decir, los valores de las notas una detras de otra.

Yo quiero sumarlas y probé con:

Código:
<xsl:variable name="tmpTotal">
             <xsl:for-each select="key('matricula',@cod_asig)" >
                 <xsl:if test='examen/@convocatoria = "Febrero"'>
                    <xsl:value-of select="sum(examen/nota)"/>
                 </xsl:if>
             </xsl:for-each>
       </xsl:variable>
pero no funciona, me sale esto

Código:
7.59
que por lo que veo es la primera nota (7.5) seguido de la segunda (9.0) pero sin el decimal

Alguien puede ayudarme??

Gracias

Un saludo