Hi!
Gibt es da noch einen anderen Weg?
Hm, vielleicht probierst du mal was ähnliches wie
<xsl:for-each select="element[position() < last() div 2]">
<xsl:sort ... order="ascending" />
...
</xsl:for-each>
<xsl:for-each select="element[position()>=last() div 2]">
<xsl:sort ... order="descending" />
...
</xsl:for-each>
Oder so ähnlich :)
Du musst es halt irgendwie hinkriegen, dass Du zuerst als zu sortierendes Node-Set nur die erste Hälfte der Knoten auswählst und dann die zweite Hälfte. Nur so 'ne Idee.
VG Simon
Danke fuer die Antworten von Franz und Simon.
Der Ansatz von Simon wuerde schon passen. Er hat nur noch einen Schoenheitsfehler.
Die Treppe schaut jetzt so aus:
-
-
-
-
-
Damit sie etwa so ausschaut:
- -
- -
--
muesste beim aufsteigenden Ast fuer jede top-position ein konstanter wert (hier z.B. 80) abgezogen werden.
...
<xsl:for-each select="person[position() > last() div 2]">
<xsl:sort select="@geb" data-type="number" order="descending" />
<xsl:variable name="lage">left:<xsl:value-of select="@geb *2 - 2966"/>px</xsl:variable>
...
<xsl:variable name="lage3">top:<xsl:value-of select="person[position()-80]"/>px</xsl:variable>
<div style="position:absolute; {$lage}; {$lage3};" >
....... usw.
Ich komme leider nicht auf die richtige xpath syntax .
"(person[position()])-80" etc.
gruesse
josef