Ich habe eine Situation, in der ich einen sortierten Knotensatz durchlaufen und eine Vorlage auf jeden der Knoten anwenden muss:
%Vor%Ich möchte mit den "ersten" 5 Knoten im Knotensatz etwas Besonderes machen und sie als verschachteltes Element rendern. Das Problem ist, dass sie in der gleichen Reihenfolge sein müssen, als wären sie sortiert (wie sie in der Schleife sind).
Ich hatte geplant, dies zu tun, indem ich zwei xsl:for-each
-Elemente benutzte, von denen jedes die richtigen Knoten aus der Menge auswählte. Ich kann das aber nicht machen, weil sie vor sortiert werden müssen. Ich kann die "erste" 5 auswählen.
Beispiel:
%Vor% Ich glaube nicht, dass das funktioniert, weil ich die Knoten nach Position vor der Sortierung auswähle, aber ich kann xsl:sort
nicht außerhalb von xsl:for-each
verwenden.
Komme ich das falsch an?
Bearbeiten : Meine aktuelle Lösung besteht darin, sie zu sortieren und die sortierte Menge in einer anderen Variablen zu speichern:
%Vor%Es funktioniert, aber gibt es einen besseren Weg?
Hier ist eine Möglichkeit, dies in XSLT 1.0 zu tun, ohne das xxx verwenden zu müssen: node-set () Erweiterungsfunktion :
%Vor%Wenn die obige Transformation auf dieses einfache XML-Dokument angewendet wird :
%Vor%das gewünschte Ergebnis wird erzeugt :
%Vor%