Tema: xml y xsl
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/03/2011, 05:33
Juny18
 
Fecha de Ingreso: abril-2007
Mensajes: 166
Antigüedad: 17 años
Puntos: 2
xml y xsl

hola a todos, no se bien donde va este tema asi que me disculpan y que lo pongan en su sitio.

Bueno mi problema es con xml y xsl

Tengo este codigo en xml

Código:
<?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>
y tengo este otro en xsl


Código:
<?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>
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.

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

Última edición por Juny18; 31/03/2011 a las 05:47