Bueno mi problema es con xml y xsl
Tengo este codigo en xml
Código:
y tengo este otro en xsl<?xml version="1.0" encoding="iso-8859-15"?> <?xml-stylesheet type="text/xsl" href="empresas.xsl"?> <Bolsa dia="5-7-2001" hora="11:34"> <Empresa indice="general"> <Nombre>General Motors</Nombre> <Simbolo>GMO</Simbolo> <Precio>28.875</Precio> </Empresa> <Empresa indice="tecno"> <Nombre>Adobe</Nombre> <Simbolo>ADB</Simbolo> <Precio>92.250</Precio> </Empresa> <Empresa indice="tecno"> <Nombre>Microsoft</Nombre> <Simbolo>MSF</Simbolo> <Precio>20.313</Precio> </Empresa> <Empresa indice="general"> <Nombre>Coca-Cola</Nombre> <Simbolo>COC</Simbolo> <Precio>38.895</Precio> </Empresa> <Empresa indice="tecno"> <Nombre>Sun Microsystems</Nombre> <Simbolo>SUN</Simbolo> <Precio>45.119</Precio> </Empresa> </Bolsa>
Código:
vale la cosa es que quiero poner en la tabla que de colores, es decir, que para las empresas cuyo precio sea mayor que 75 aparezcan en azul y a las menores de 25 aparezca las celdas rojas. El problema es que me sale siempre azul, al poner el estilo con td, pero es que no se como ponerlo.<?xml version="1.0" encoding="iso-8859-15"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <html> <head> </head> <body> <center><h1><xsl:value-of select="/Bolsa/@dia"/>-----<xsl:value-of select="/Bolsa/@hora"/></h1></center> <table border="1"> <!--CABECERA TITULO DE LA TABLA--> <tr> <td>Indice</td> <td>Nombre</td> <td>Simbolo</td> <td>Precio</td> </tr> <xsl:for-each select="/Bolsa/Empresa"> <!--ORDENAR POR PRECIO--> <xsl:sort select="Precio"/> <!--AQUI FILTRA LOS COLORES , SI ES MAYOR QUE 75 AZUL SI ES MENOR QUE 25 ROJO--> <xsl:if test="Precio/text()>'75'"> <style type="text/css"> td {color:blue} </style> </xsl:if> <!--<xsl:if test="Precio/text()<'25'"> <style type="text/css"> td{ color:red;} </style> </xsl:if>--> <tr> <!--FILTRA CUAL TIENE UN INDICE GENERAL Y CUAL NO PARA PONER EL *--> <xsl:if test="@indice!='general'"> <td><xsl:value-of select="@indice"/></td> <td><xsl:value-of select="Nombre/text()"/></td> <td><xsl:value-of select="Simbolo/text()"/></td> <td><xsl:value-of select="Precio/text()"/></td> </xsl:if> <xsl:if test="@indice='general'"> <td><xsl:value-of select="@indice"/></td> <td><xsl:value-of select="concat('*',' ',Nombre/text())"/></td> <td><xsl:value-of select="Simbolo/text()"/></td> <td><xsl:value-of select="Precio/text()"/></td> </xsl:if> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>
Espero su ayuda por favor.
Gracias
EDITO: ME SALE EL ERROR: ERROR LECTURA XML MAL FORMADO SI PONGO LO QUE HAY DENTRO DEL COMENTARIO QUE ES ESTO:
<!--<xsl:if test="Precio/text()<'25'">
<style type="text/css">
td{ color:red;}
</style>
</xsl:if>-->
PD: LAS MAYUSCULAS SON PARA RESALTAR NO PARA GRITAR