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

Variables en XSL

Estas en el tema de Variables en XSL en el foro de Programación General en Foros del Web. Hola, soy nuevo en este foro, aunque no negaré que me han servido de mucho las respuestas a las que siempre he podido acceder sin ...
  #1 (permalink)  
Antiguo 30/04/2011, 03:44
 
Fecha de Ingreso: abril-2011
Mensajes: 2
Antigüedad: 13 años
Puntos: 0
Variables en XSL

Hola, soy nuevo en este foro, aunque no negaré que me han servido de mucho las respuestas a las que siempre he podido acceder sin ser miembro.
Bueno, me estreno con la siguiente pregunta: cual es el problema que hay en este código? Quiero que me filtre todos los libros (tengo un xml con ellos y tienen el atributo category) por la categoria web:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:variable name="vopcion" select="@category='web'"/>


<xsl:template match="/">

<xsl:apply-templates/>

</xsl:template>

<xsl:template match="bookstore/book">


<xsl:choose>
<xsl:when test="$vopcion">
<tr>
<td><xsl:value-of select="@category"/></td>
<td><xsl:value-of select="@id"/></td>
<td><xsl:value-of select="@cover"/></td>
<td><xsl:value-of select="title"/></td>
<td>
<xsl:for-each select="author">
<xsl:value-of select="."/>
<span>;</span>
</xsl:for-each>
</td>
<td><xsl:value-of select="year"/></td>
<td><xsl:value-of select="price"/></td>
</tr>
</xsl:when>
</xsl:choose>


</xsl:template>


</xsl:stylesheet>

Bueno, espero que me puedan ayudar. Gracias por adelantado.
  #2 (permalink)  
Antiguo 30/04/2011, 15:30
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Variables en XSL

Hubiera estado bien si hubieses puesto como es la estructura del archivo xml para poder ver cual es el problema exacto con la plantilla XSL.

Aun así, tal como lo veo el problema que tienes es sencillo,
la variable vopcion que creas no sirve de nada.

No puedes utilizar una variable para ello, porque la variable se crea en el momento en el que se ejecuta (no es una función a la que llamar).

Lo único que tienes que hacer es cambiar el
Código XML:
Ver original
  1. <xsl:when test="$vopcion'">
por
Código XML:
Ver original
  1. <xsl:when test="@category='web'"
>

Este sería el código cambiado:

Código XML:
Ver original
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  3.  
  4.  
  5. <xsl:template match="/">
  6.  
  7. <xsl:apply-templates/>
  8.  
  9. </xsl:template>
  10.  
  11. <xsl:template match="bookstore/book">
  12.  
  13.  
  14. <xsl:choose>
  15. <xsl:when test="@category='web'">
  16. <tr>
  17. <td><xsl:value-of select="@category"/></td>
  18. <td><xsl:value-of select="@id"/></td>
  19. <td><xsl:value-of select="@cover"/></td>
  20. <td><xsl:value-of select="title"/></td>
  21. <td>
  22. <xsl:for-each select="author">
  23. <xsl:value-of select="."/>
  24. <span>;</span>
  25. </xsl:for-each>
  26. </td>
  27. <td><xsl:value-of select="year"/></td>
  28. <td><xsl:value-of select="price"/></td>
  29. </tr>
  30. </xsl:when>
  31. </xsl:choose>
  32.  
  33.  
  34. </xsl:template>
  35.  
  36.  
  37. </xsl:stylesheet>
  #3 (permalink)  
Antiguo 01/05/2011, 08:31
 
Fecha de Ingreso: abril-2011
Mensajes: 2
Antigüedad: 13 años
Puntos: 0
Respuesta: Variables en XSL

Gracias por tu ayuda :D

Etiquetas: programacion, variables, 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 01:40.