Hallo!
Müßte m.E. so lauten (ungetestet):
../eintrag[position() = (./position()-1)
Nein, das Funktioniert nicht. Der Prozessor regt sich über "./" auf.
Folgende Konstrukt liefert mir aber auch nur die Reihenfolge des XML-Dakumentes, für den Vorgänger und Nachfolger.
<xsl:template match="eintrag">
<xsl:variable name="v">
<xsl:value-of select="position() + 1"/>
</xsl:variable>
<xsl:variable name="z">
<xsl:value-of select="position() - 1"/>
</xsl:variable>
<tr>
<td><xsl:value-of select="$z"/></td>
<td><xsl:value-of select="$v"/></td>
<td><xsl:value-of select="position()"/></td>
<td><xsl:value-of select="../eintrag[position() = $z]/name"/></td>
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="../eintrag[position() = $v]/name"/></td>
</tr>
</xsl:template>
Hier lass ich ja die Variablen mitlaufen. Die Werte sind wie erwartet. Schreibe ich nun aber z.B. "../eintrag[position() = $v]/name" um in "../eintrag[$v]/name" bekomme ich immer nur Berta angezeigt, also der erste Name im XML-Dokument. Schreibe ich aber für $v eine Zahl rein, also 1, 2, 3, 4 usw. ("../eintrag[2]/name" -> Anton), bekomme ich immer den betreffenden Namen zurück, wie erwartet.
MfG, André Laugks
L-Andre @ gmx.de