XSL - Sumar numeros

 
Vista:

Sumar numeros

Publicado por Zehiter (1 intervención) el 11/10/2006 04:40:39
Ayuda por favor !!!

Tengo un problema

Lo que pasa es que estoy haciendo una transformacion de un XML a XSL, todo va bien excepto en la suma de cantidades.

En ocasiones no hay datos que el xml obtenga ya que el usuario no captura nada y cuando aplico la funcion sum(datos) el total de la suma me arroja una espantosa leyenda que dice NaN

por ejemplo: tengo la sig lista de datos

9
3
2
<------Aqui no tengo ningun dato
4

Obviamente el total debería ser 18 pero como en la 4 posicion no tengo absolutamente nada, la funcion sum no puede efectuar la suma total y me da como resultado NaN

Como le hago?, hay otra funcion que me sustituya el espacio en blanco para que no afecte el total y pueda sumar los datos?

De antemano, Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Solución para la suma de cantidades con espacios en blanco

Publicado por Alejandro (227 intervenciones) el 05/07/2023 22:24:24
Una solución para tu problema es utilizar la función `number()` para convertir los espacios en blanco en ceros antes de aplicar la función `sum()`. De esta manera, los espacios en blanco no afectarán el resultado final de la suma. Puedes hacerlo de la siguiente manera:

1. Reemplaza la función `sum()` existente por la siguiente expresión:

1
sum(datos[number(.) = number(.)])

Esto asegurará que solo se sumen los valores que sean numéricos (diferentes de espacios en blanco) y se ignoren los espacios en blanco.

2. Con esta modificación, la suma de los datos en tu ejemplo resultará en el valor correcto de 18.

Puedes aplicar esta solución en cualquier consulta que involucre sumar cantidades que puedan contener espacios en blanco. Recuerda que es importante validar y asegurarte de que los datos sean numéricos antes de realizar operaciones matemáticas en XSL.

¡Espero que esta solución te sea útil!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar