Alex Wolff: Bedingte Wertzuweisung von Variablen in XSLT

Beitrag lesen

hi,

<xsl:if test="$test">
    <xsl:param name="w" >Ja</xsl:param>
</xsl:if>

<xsl:if test="not<($test)">
    <xsl:param name="w" >Nein</xsl:param>
</xsl:if>

mudguard und björn haben es ja schon angedeutet, aber ich würde es gern ausführlicher diskutieren (auch um zu testen, ob mein wissen überhaupt korrekt ist ;).

also:
die params sind in xsl mehr für template-aufrufe, wobei ein parameter mitübergeben wird, gedacht. was du brauchst sind variablen.
die sind in xsl aber immer nur lokale variablen; d.h. sie existieren nur innerhalb ihres blocks. bei dir also nur zwischen xsl:if und </xsl:if>.
bei xsl muss man ein bischen umdenken, die bedingungen gehören in xsl:variable und nicht umgekehrt.
zu deinen if-bedingungen: ich hatte damit probleme; nimm lieber xsl:choose und xsl:when (siehe björn).

und zu deiner zweiten bedingung:
test="not<($test)"
autsch! wenn du javascript-mäßig (!$test) meintest, dann nimm einfach die xsl:otherwise.
alex