André Laugks: Baum zur Tranformierung anlegen

Beitrag lesen

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