Thomas: Variablenzuweisung in XSL (<xsl:variable>) mehrmals möglich?

Beitrag lesen

Hallo Leute!

In einer XML-Transformation mit XSL habe ich das Problem, das sich
ein einfacher Zähler nicht realisieren läßt. Die Funktionen position(),
last() und count() sind mir bekannt, lösen aber nicht das Problem.
Folgendes einfaches Beispiel:
XML:
----
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="weg.XSL" ?>
<top>
  <eintrag>
     <bild>a</bild>
     <bild>g</bild>
     <bild>h</bild>
     <bild>a</bild>
     <bild>e</bild>
  </eintrag>
</top>
XSL:
----
<?xml version="1.0" encoding="iso-8859-1" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="top/eintrag/bild">
<xsl:if test=". ='a'">
    <xsl:value-of select="." /> position <xsl:value-of select="position()" /><br/>
    <xsl:variable name="x">1</xsl:variable>
    <!-- dies geht nicht <xsl:value-of select="$x = $x + 1"/> -->
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

Bei der 4 Schleifen-Iteration muß ich den Wert 2 (2 mal ist die if-bedingung erfüllt) haben, position() liefert aber
den Wert 4, die Variable-Zusweisung funktioniert nur einmal.
Wer kann mir helfen, wäre super?

Vielen Dank im voraus
Thomas