Thread XSLT: Variablen belegen (3 answers)
Opened by pktm at 2007-05-18 16:47

pktm
 2007-05-18 16:47
#9995 #9995
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!

Ich komme gerade irgendwie nicht weiter.
Ich weis jetzt, wie man in XSLT eine Variable definiert und wie man sie ausliest.
Aber wie kann ich eine Variable nachträglich verändern?

Folgender Fall:
Ich habe eine riesige <choose> - Struktur. An jeder Stelle kommt natürlich etwas heraus und ich hätte das ergebnis gerne in einer Variable, weil ich das hinterher besser verarbeiten kann. Das fängt schon dabei an, dass ich das Ergebnis zweimal verwenden kann, ohne zweimal diese riesige <choose>-Struktur aufrufen zu müssen.

Also dachte ich mir, definiere ich mir eine Variable und belege die in der <choose>-Struktur.

Beispiel wie ich mir das vorgestellt habe:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
<xsl:variable name="trans">undef</xsl:variable>
<xsl:choose>
<xsl:when test="@lemma='ein'"><xsl:variable name="trans">a</xsl:variable></xsl:when>
<xsl:when test="@lemma='--'"><xsl:variable name="trans">--</xsl:variable></xsl:when>
<xsl:otherwise><xsl:variable name="trans" select="k. Ü." /></xsl:otherwise>
</xsl:choose>

<!-- jetzt die Variable verwenden -->
<tag>
<xsl:value-of select="$trans" />
</tag>


Das klappt nicht, weil ich zum einen die Variable schon außerhalb des choose-Tags deklariert habe und so wie es jetzt da steht die Variable zweimal deklarieren würde.
Ich will aber nur den Wert ändern.

Die Deklaration außerhalb der Choose-Struktur kann ich aber nicht weglassen, weil sonst der Skopus der Variable nicht ausreichend ist, da ich die ja später, nach dem <choose> verwenden möchte.

Kann mir jemand sagen, wie ich die Variable verändern kann?

Grüße, pktm
http://www.intergastro-service.de (mein erstes CMS :) )

View full thread XSLT: Variablen belegen