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

xsl:if con atributos ?

Estas en el tema de xsl:if con atributos ? en el foro de Programación General en Foros del Web. Tengo un xml con el siguiente formato : <?xml version="1.0" encoding="UTF-8" ?> <Actualizacion hora="05/11/10 10:31"> <Valor Nombre="A" Variacion="-0,09%"/> <Valor Nombre="B" Variacion="-1,77%" /> </Actualizacion> Sobre esos ...
  #1 (permalink)  
Antiguo 08/11/2010, 03:52
Avatar de subsoho  
Fecha de Ingreso: octubre-2009
Mensajes: 34
Antigüedad: 14 años, 6 meses
Puntos: 0
xsl:if con atributos ?

Tengo un xml con el siguiente formato :

<?xml version="1.0" encoding="UTF-8" ?>
<Actualizacion hora="05/11/10 10:31">
<Valor Nombre="A" Variacion="-0,09%"/>
<Valor Nombre="B" Variacion="-1,77%" />
</Actualizacion>

Sobre esos datos quiero aplicar una hoja de estilos XSLT que me genere otro archivo XML con ciertas transformaciones, una de esas transformaciones con condicionales (saca los elementos con variacion superior a un valor dado). El problema es que no se como hacer que xsl:if funcione con atributos ("Variacion" es un atributo del elemento "Valor") de un nodo.

Quisiera poder hacer algo como esto:

<xsl:if Variacion>0.5 />

pero no funciona.

Necesito ayuda, gracias.
  #2 (permalink)  
Antiguo 08/11/2010, 08:56
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 2 meses
Puntos: 90
Respuesta: xsl:if con atributos ?

Los valores los llamas con @

por ejemplo

<xsl:if Valor/@Variacion > 0.5 />

__________________
Esteban Quintana
  #3 (permalink)  
Antiguo 09/11/2010, 15:06
Avatar de subsoho  
Fecha de Ingreso: octubre-2009
Mensajes: 34
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: xsl:if con atributos ?

(Puesto en un tema nuevo ...)

Si, era eso pero no soluciona mi problema.

El tema es que el valor del atributo que quiero poner en el if es un texto y no tengo manera de pasarlo a number para el if.

Aquí el código :

<xsl:decimal-format name="euro"decimal-separator="," grouping-separator="."/>


<xsl:variable name="variacion" select="substring-before(html:td[2], '%')" />
<xsl:variable name="var_num" select="format-number($variacion, '##0.00', 'euro')" />
<xsl:if test="$var_num &gt; 1">
.....

var_num simpre es NAN porque no puede hacer la conversión de texto a numero, y en consecuencia, la condición de que sea mayor que 1 nunca se cumple.

Ayuda necesito, gracias.

(Mejor lo pongo en otro tema nuevo)

Última edición por subsoho; 10/11/2010 a las 01:26

Etiquetas: atributos, xml
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 01:42.