Foros del Web » Programación para mayores de 30 ;) » Programación General »

XSL: Sumar valores en en for-each

Estas en el tema de XSL: Sumar valores en en for-each en el foro de Programación General en Foros del Web. 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> ...
  #1 (permalink)  
Antiguo 02/01/2009, 11:54
 
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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:00.