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

comprobaciones alternativas en un solo xsl:when

Estas en el tema de comprobaciones alternativas en un solo xsl:when en el foro de Programación General en Foros del Web. Hola, Estoy intentando que se ejecute lo que hay dentro de un mismo <xsl:when></xsl:when> cuando el valor de un id es 0, 1 ó 6. ...
  #1 (permalink)  
Antiguo 26/03/2004, 03:13
 
Fecha de Ingreso: abril-2003
Mensajes: 14
Antigüedad: 21 años, 7 meses
Puntos: 0
comprobaciones alternativas en un solo xsl:when

Hola,

Estoy intentando que se ejecute lo que hay dentro de un mismo <xsl:when></xsl:when> cuando el valor de un id es 0, 1 ó 6. Como no consigo insertar una expresión en el test del when que admita varias posibilidades, he tenido que utilizar:

<xsl:choose>
<xsl:when test="./AAA/@id='0'">
<!-- Código a ejecutar -->
</xsl:when>
<xsl:when test="./AAA/@id='1'">
<!-- Código a ejecutar -->
</xsl:when>
<xsl:when test="./AAA/@id='6'">
<!-- Código a ejecutar -->
</xsl:when>
<xsl:otherwise>
<!-- Otro código a ejecutar -->
</xsl:otherwise>
</xsl:choose>


Sin embargo, me gustaría saber si existe la posibilidad de hacer algo parecido a:

<xsl:choose>
<xsl:when test="./AAA/@id='0' OR ./AAA/@id='1' OR ./AAA/@id='6'">
<!-- Código a ejecutar -->
</xsl:when>
<xsl:otherwise>
<!-- Otro código a ejecutar -->
</xsl:otherwise>
</xsl:choose>

Si alguien lo sabe, os agradecería una respuesta.
  #2 (permalink)  
Antiguo 26/03/2004, 04:41
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 23 años, 1 mes
Puntos: 5
Claro que se puede y es justo como tú lo has puesto, quizás te falle que el OR lo debes poner en minúsculas.

Te pongo un ejemplillo para que lo pruebes:

prueba.xml

Código PHP:
<?xml version="1.0" encoding="UTF-8"?>
<?xml
-stylesheet type="text/xsl" href="prueba.xsl"?>
<prueba>
   <titulo id="1">uno</titulo>
   <titulo id="2">dos</titulo>
   <titulo id="3">tres</titulo>
   <titulo id="4">cuatro</titulo>
   <titulo id="5">cinco</titulo>
</prueba>
prueba.xsl

Código PHP:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:template match="prueba">
      <html>
         <head>
            <title/>
         </head>
         <body>
            <xsl:for-each select="titulo">
               <xsl:apply-templates select="."/>
            </xsl:for-each>
         </body>
      </html>
   </xsl:template>
   
   <xsl:template match="titulo">
      <xsl:choose>
         <xsl:when test="@id='1' or @id='3' or @id='5'">
            Válido: <xsl:value-of select="text()"/><br/>
         </xsl:when>
         <xsl:otherwise>
            No válido<br/>
         </xsl:otherwise>
      </xsl:choose>
   </xsl:template>
   
</xsl:stylesheet>
Un beso
  #3 (permalink)  
Antiguo 26/03/2004, 05:05
 
Fecha de Ingreso: abril-2003
Mensajes: 14
Antigüedad: 21 años, 7 meses
Puntos: 0
Funciona perfectamente... muchas gracias Helbira


  #4 (permalink)  
Antiguo 26/03/2004, 05:09
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 23 años, 1 mes
Puntos: 5
De ná
__________________
BUSCO TELETRABAJO
Experiencia de mas de 4 años como desarrolladora web en PHP, ASP, XML, XSL, JavaScript, MySQL, PostGres, SQLServer, ...
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 23:18.