Sortieren eines Knotensatzes vor dem Übergeben an xsl: for-each

8

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?

    
Zack The Human 07.04.2010, 20:30
quelle

1 Antwort

14

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%     
Dimitre Novatchev 07.04.2010, 22:14
quelle

Tags und Links