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

XSL/XML, order by no funciona a la hora de ordenar registros

Estas en el tema de XSL/XML, order by no funciona a la hora de ordenar registros en el foro de Programación General en Foros del Web. Buenas, me encuentro realizando una actividad y en principio todo parece estar bien, pero los resultados no me los devuelve realmente ordenados, os paso a ...
  #1 (permalink)  
Antiguo 12/01/2016, 11:53
 
Fecha de Ingreso: enero-2016
Mensajes: 3
Antigüedad: 8 años, 10 meses
Puntos: 0
Sonrisa XSL/XML, order by no funciona a la hora de ordenar registros

Buenas, me encuentro realizando una actividad y en principio todo parece estar bien, pero los resultados no me los devuelve realmente ordenados, os paso a mostrar los archivos a ver si me podéis echar un cable:

XML:

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="jose.xsl"?>
<catálogo>
<libro>
<Título>C++</Título>
<Editorial>Osborne</Editorial>
<autores>
<Autor>Luis Joyanes</Autor>
<Autor>Héctor Castán</Autor>
</autores>
<ISBN>8448123638</ISBN>
<Páginas>367</Páginas>
<Precio moneda="Pta">3995</Precio>
<Precio moneda="Euro">24,01</Precio>
</libro>
<libro>
<Título>XML in Action</Título>
<Editorial>Microsoft Press</Editorial>
<autores>
<Autor>William J. Pardi</Autor>
</autores>
<ISBN>0735605629</ISBN>
<Páginas>354</Páginas>
<Precio moneda="Pta">11000</Precio>
<Precio moneda="Euro">66,11</Precio>
</libro>
<libro>
<Título>Sistemas informáticos multiusuario y en red</Título>
<Editorial>McGrawHill</Editorial>
<autores>
<Autor>Purificación Cerrato</Autor>
<Autor>Pedro Jarillo</Autor>
<Autor>Eugenio Lázaro</Autor>
<Autor>María Dolores Jarillo</Autor>
</autores>
<ISBN>8448105540</ISBN>
<Páginas>192</Páginas>
<Precio moneda="Pta">2465</Precio>
<Precio moneda="Euro">14,81</Precio>
</libro>
<libro>
<Título>HTML avanzado</Título>
<Editorial>Microsoft Press</Editorial>
<autores>
<Autor>Morris</Autor>
</autores>
<ISBN>8448109708</ISBN>
<Páginas>280</Páginas>
<Precio moneda="Pta">4900</Precio>
<Precio moneda="Euro">29,45</Precio>
</libro>
</catálogo>

XSL:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
xmlns:xsl="http://www.w3.org/TR/WD-xsl"
xmlns="http://www.w3.org/TR/REC-html40"
result-ns="">
<xsl:template match="/">
<HTML>
<HEAD>
<TITLE>Catálogo de libros</TITLE>
</HEAD>
<BODY>
<link rel="stylesheet" type="text/css" href="formato.css" />
<H1>CATÁLOGO DE LIBROS</H1>
<P>Títulos de libros ordenados por su precio en pesetas (de menor a mayor ):</P>
<xsl:for-each select="//libro" order-by="+Precio[@moneda='Pta']">
<B><xsl:value-of select="Título" /></B>
(<xsl:value-of select="Precio[@moneda='Pta']" />)ptas<BR/>
</xsl:for-each>
<P>Títulos de libros ordenados por su precio en euros (de mayor a menor):</P>
<xsl:for-each select="//libro" order-by="-Precio[@moneda='Euro']">
<B><xsl:value-of select="Título" /></B>
(<xsl:value-of select="Precio[@moneda='Euro']" />)euros<BR/>
</xsl:for-each>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>

CSS:

BODY {font-family:Verdana,sans-serif}
H1 {color:red;font-family:Comic
Sans
MS,fantasy;font-
size:18pt;font-weight:bolder;text-align:center}
H2
{color:#993366;font-family:Verdana,sans-serif;font-
size:16pt;font-weight:bold;text-align:left}
P
{color:navy;font-family:Verdana,sans-serif;font-
size:12pt}
  #2 (permalink)  
Antiguo 13/01/2016, 06:31
 
Fecha de Ingreso: enero-2016
Mensajes: 3
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: XSL/XML, order by no funciona a la hora de ordenar registros

He probado con sort y sigue sin ordenarme los registros.... algo debe de estar mal
  #3 (permalink)  
Antiguo 13/01/2016, 07:39
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: XSL/XML, order by no funciona a la hora de ordenar registros

Cita:
Iniciado por leryspid13 Ver Mensaje
He probado con sort y sigue sin ordenarme los registros.... algo debe de estar mal
Sin analizar demasiado... yo supondría que si quieres ordenar el XML por el precio, y dado que el precio está expresados con centavos, pero con coma como separador de decimales, es altamente probable que lo esté interpretando como cadena de texto y no como numeros.
Usualmente los lenguajes y los modelos de datos de todo tipo toman el punto como separador de decimales...

Verificalo por ese lado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 13/01/2016, 13:24
 
Fecha de Ingreso: enero-2016
Mensajes: 3
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: XSL/XML, order by no funciona a la hora de ordenar registros

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Sin analizar demasiado... yo supondría que si quieres ordenar el XML por el precio, y dado que el precio está expresados con centavos, pero con coma como separador de decimales, es altamente probable que lo esté interpretando como cadena de texto y no como numeros.
Usualmente los lenguajes y los modelos de datos de todo tipo toman el punto como separador de decimales...

Verificalo por ese lado.

muchas gracias, voy a probar a ver si fuera eso

Etiquetas: xml, xsl
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 04:10.