2011-06-28 12 views
11

nie mogę uzyskać to do pracy ... ja po prostu chce zmienić wartość zmiennej zdefiniowanej globalnie:Jak zmienić <xsl: variable> wartość

    <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>  

Oczywiście kod jest nieprawidłowy, ponieważ jest już zdefiniowane, ale jak zmienić wartość?

+1

Głosowanie zamknąć jako [dokładna powielać] (http://stackoverflow.com/ pytania/6436272/how-to-update-the-variable-value-in-xslt/6438323 # 6438323). –

Odpowiedz

15

Sprawdź ten link się:

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

Zasadniczo Twój kod powinien wyglądać tak:

<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

Tak, z wyjątkiem tego, że przykład wiąże wartości true i false z x, więc robi 'x: = if (c), a następnie true else false', które można uprościć do' x: = c'. –

+0

@MichaelKay: Przepraszam, że wskrzesiłem stary post, ale ponownie natknąłem się na ten post i zobaczyłem twój komentarz. Chcę podkreślić, że kryteria testu dotyczyły raczej tekstu "tak, to jest biznes", niż ewaluacji boolowskiej. Xslt wskazuje, że nie jest to prosta ewaluacja binarna, ale wybór 2 lub * więcej * pozycji, z których tylko jedna jest istotna dla oceny. Wynik ewalnetów określa odpowiedź true/false na xslt. Twoje zdrowie! – code4life

Powiązane problemy