Hallo,
jetzt noch eine Frage zu XSL.
Gut, die Antwort liegt nämlich schon im Archiv (ich weiss es, weil ich sie gegeben habe *g*)
Wenn eines der Data Elemente den Wert "ja" enthält, soll die globale Variable abc auf 2 gesetzt werden.
Wie mein Vorposter schon erwählte, das geht nicht. Einmal deklarierte Variablen können im XSL nicht mehr geändert werden. Dafür gibt es xsl:param.
Wenn ich die Variable unten abfrage, steht sie aber trotzdem noch auf 1.
Anscheinend liegt das daran, dass ich keine Variable innerhalb einer for-each oder if Schleife setzen kann.
Doch das kannst du, aber dann hat sie ihrem Gültigkeitsbereich auch nur innerhalb des xsl:for-each
<xsl:variable name="abc" select="'1'"/>
Das ist eine globale Variable.
<xsl:template match="/">
<xsl:for-each select="Stamm/Data">
<xsl:if test=". = 'Ja'">
<xsl:variable name="abc" select="'2'"/>
Und das ist eine lokale Variable, die nur innerhalb von xsl:if existiert. Wird xsl:if beendet, endet auch der Gültigkeitesbereich der Variable.
Was du möchtest, kannst du mit einem recursiven Aufruf erledigen, suche bitte im Archiv nach counter in diesem Zusammenhang.
Grüße
Thomas