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

Error en procesamiento XML

Estas en el tema de Error en procesamiento XML en el foro de Programación General en Foros del Web. Hola a todos, aquí les presento un simple archivo xml que contiene datos de tres productos, cada producto tiene un precio y mi objetivo era ...
  #1 (permalink)  
Antiguo 18/04/2009, 14:08
Avatar de Jacobgz  
Fecha de Ingreso: abril-2009
Ubicación: Perú
Mensajes: 28
Antigüedad: 15 años
Puntos: 0
Error en procesamiento XML

Hola a todos, aquí les presento un simple archivo xml que contiene datos de tres productos, cada producto tiene un precio y mi objetivo era mostrar en letras rojas los productos cuyo precio fuera mayor que 50 y en letras verdes los precios menores a 50.
El XML:
Código:
<?xml version="1.0" encoding="utf-8"?>
<?xml:stylesheet type="text/xsl" href="choose.xsl"?>
<productdata>
    <product proid="p001" category="toy">
        <productname>Mini Bus</productname>
        <description>This is a toy for children aged 4 and above</description>
        <price>75</price>
        <quantity>100</quantity>
    </product>
     <product proid="p002" category="book">
        <productname>The English Patient</productname>
        <description>This is a book set during the second world war</description>
        <price>19</price>
        <quantity>75</quantity>
    </product>
     <product proid="p003" category="toy">
        <productname>Race Car</productname>
        <description>This is a toy for children aged 12 and above</description>
        <price>60</price>
        <quantity>54</quantity>
    </product>
</productdata>
Ahora la hoja de estilo a la que le llamo choose.xsl

Código:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="faltaenlace" version="1.0">
<xsl:output method="html"/>
<xsl:template match="/">

<html xmlns="faltaenlace">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Untitled Document</title>
</head>

<body>
  <xsl:for-each select="//product">
      <xsl:choose>
          <xsl:when test="price[.&gt;50]">
             <font color="red">
                Nombre del producto <xsl:value-of select="productname"/> <br />
                Descripción <xsl:value-of select="description"/><br />
                Precio <xsl:value-of select="price"/><br />
                Cantidad <xsl:value-of select="quantity"/><br />
                <hr />
              </font>
        </xsl:when>
        <xsl:otherwise>
            <font color="green">
                Nombre del producto <xsl:value-of select="productname"/> <br />
                Descripción <xsl:value-of select="description"/><br />
                Precio <xsl:value-of select="price"/><br />
                Cantidad <xsl:value-of select="quantity"/>
                <hr />
            </font>   
        </xsl:otherwise>
     </xsl:choose>

   </xsl:for-each>

</body>
</html>

</xsl:template>
</xsl:stylesheet>
El problema viene aquí, cuando quiero ver el resultado de esto, Firefox me tira un error y Chrome muestra todo en una sola línea y desordenado.El único navegador que responde el Internet Explorer 8.
Alguien me podría dar alguna pista para solucionar mi problema?
Gracias por adelantado

Muy importante:Como soy nuevo no puedo adjuntar enlaces por eso que en el xsl faltan los dos enlaces que deben ir:
<xsl:stylesheet xmlns:xsl="aquí falta el enlace">
<html xmlns="y aquí también">
Estaba pensando en ponerlos pero voy a confundir así que ustedes porfavor los completan.
  #2 (permalink)  
Antiguo 18/04/2009, 21:08
Avatar de Ek-Balam  
Fecha de Ingreso: octubre-2008
Mensajes: 21
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: Error en procesamiento XML


Saludos, Jacobgz.

Revisando los códigos se hallan los siguientes errores:

Primeramente, defines los encoding en utf-8 y el el xsl usas caracteres
no admitidos, ya que no debes hacer uso de acentos (el utf-8 es para
usar el alfabeto inglés, el cual carece de acentos y la letra Ñ, entre otros).
Si deseas hacer uso de acentos, define el encoding en "iso-8859-1" en ambos
archivos.

Segundo y menor, no es necesario que uses el <xsl:output method="html" />
cuando vas a generar un resultado visible en un navegador, pues por defecto
este es el método de salida. En algunos editores xml-xsl te arroja error en el
uso.

Tercero, y el verdadero error, tuviste un error pequeñísimo que es el culpable
de todo:
En el xml definiste <?xml:stylesheet type="text/xsl" href="choose.xsl"?>; siendo
el error los 2 puntos ( : ) que están entre "xml" y "stylesheet". Debiste escribir:
<?xml-stylesheet type="text/xsl" href="choose.xsl"?>

Espero que esto te ayude a solucionar tu problema.

Buen día.

=0)
  #3 (permalink)  
Antiguo 19/04/2009, 19:14
Avatar de Jacobgz  
Fecha de Ingreso: abril-2009
Ubicación: Perú
Mensajes: 28
Antigüedad: 15 años
Puntos: 0
Respuesta: Error en procesamiento XML

Hola ante todo gracias por responder y sí tienes mucha razón debí usar el guión en vez del doble punto.Pero aquí se me viene otra duda, te comento que la mayoría de los ejercicios de xml y xsl que realizo lo hago dentro de NetBeans 6.5, como debes saber usando este ide genero mi documento html, mi duda viene aquí:cuando uso NetBeans pongo los dos puntos y me genera sin ningún problema el documento.Cuando realicé este ultimo xml lo hice en dreamweaver y por eso creo que tuve ese problema.Además he leído algún material que decía que podía colocar o bien el guión o los dos puntos.Supongo que estan equivocados.
Bueno eso es todo gracias de nuevo por responder fuiste muy amable.
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 20:02.