2011-06-28 57 views
11

no puedo conseguir que esto funcione ... Simplemente quiero cambiar el valor de una variable definida a nivel mundial:¿Cómo cambiar <xsl: variable> valor

    <xsl:variable name="isBusiness"></xsl:variable> 
        <xsl:choose> 
         <xsl:when test="yes this is a business"> 
           <xsl:variable name="isBusiness">true</xsl:variable>       
         </xsl:when> 
         <xsl:otherwise> 
          <xsl:variable name="isBusiness">false</xsl:variable> 
         </xsl:otherwise> 
        </xsl:choose>  

Obviamente, el código no es válido, porque es ya definido, pero ¿cómo cambiaría el valor?

+1

votación para cerrar como [exacta duplicar] (http://stackoverflow.com/ preguntas/6436272/how-to-update-the-variable-value-in-xslt/6438323 # 6438323). –

Respuesta

15

Compruebe hacia fuera este enlace:

http://www.dpawson.co.uk/xsl/sect2/N8090.html#d10874e187

Básicamente, el código debería tener este aspecto:

<xsl:variable name="x"> 
    <xsl:choose> 
    <xsl:when test="a">z</xsl:when> 
    <xsl:when test="b">zz</xsl:when> 
    <xsl:otherwise>zzz</xsl:otherwise> 
    </xsl:choose> 
</xsl:variable> 
+0

Sí, excepto que el ejemplo vincula los valores verdadero y falso a x, por lo que se hace 'x: = if (c) luego true else false' que se puede simplificar a' x: = c'. –

+0

@MichaelKay: lo siento por resucitar una publicación anterior, pero volví a esta publicación y vi tu comentario. Quiero señalar que el criterio de la prueba fue para el texto "sí, esto es un negocio", en lugar de una evaluación booleana. El xslt indica que esto no es una simple evaluación binaria, sino una opción de 2 o * más * ítems, de los cuales solo uno es significativo para la evaluación. El resultado de la evaluación compensa la respuesta verdadero/falso en el xslt. ¡Aclamaciones! – code4life

Cuestiones relacionadas