Hallo Anrer,
So oder fast hatte ich es schon gehabt.
Diese Form bedeutet: Alle Kinderelemente des Elementes 'eintrag' selectieren. Die gesamte Liste der Kinderlemente soll dann sortiert werden? In meinem Falle gebe ich 'name'(Kind) an.
Da ich aber nur ein element habe, benötige ich das Attribut select ja nicht.
Überleg mal: wenn du nur ein Element hättest, was willst du dann an diesem einen Element sortieren? Du hast aber viele <name> Elemente.
Du benötigst hier das Attribut select, weil du dein Sortierkriterium darin festlegst. Du legst eben fest dass die Ausgabe sortiert und zwar aufgrund des <name> Elements erfolgen muss.
Wenn ich aber xsl:sort innerhalb xsl:tempalte definiere, wird die Sortierung pro Elternelement angewendet?
Dann wird die Sortierung immer wieder pro <name> Element durchgeführt und da du in dem Fall tatsächlich nur ein einziges <name> Element zum Sortieren hast, bekommst du die von dir erwähnte "unsortierte" Liste.
Ich durchlaufe ja mit xsl:for-each jedes Kindelement eines Elternelementes?
Das kommt darauf an was du im xsl:for-each selektiert hast.
Aber das ändert nicht daran, dass du beim for-each für <eintrag> pro <eintrag> die Sortierung vornimmst, was nur dann etwas bringen würde, wenn du im <eintrag> mehrere <name> Element hättest.
Beim <xsl:teplate match=""> wird zwar ähnlich wie beim for-each für jedes <eintrag> Element die entsprechende Transformation durchgeführt aber die Ausgabe des Ergebnissbaumes erfolgt erst durch xsl:apply-templates und dort kannst du für diese Ausgabe eben die Reihenfolge der selben mit <xsl:sort select=""> festlegen.
Grüße
Thomas