Guten Abend!
Ausgangssituation:
Im XML-Dokument gibt es in einem Element (bis zu) vier Kinder. Die haben alle ein Attribut "source".
Im XML-Dokument sind die vier Element wild durcheinander notiert.
Also etwa
In der XSL-Transformation will ich diese bis zu vier Kinder der Reihe nach abarbeiten. Und zwar in der alphabetischen Reihenfolge des source-Attributs.
Zuerst soll (im Beispiel) das Element mit source="aa" abgearbeitet werden, dann das mit "ff" und so weiter.
Problem:
Wenn ich mittels
sortiere, hat das (für mich) keine Auswirkungen. (Steht auch überall: Sortiert nur den Output.) Wenn ich nämlich danach mit
das erste Element anspreche, ist erhalte ich eben nicht das Element mit source="aa", sondern dasjenige, das im Ausgangsdokument als erstes notiert ist, also in meinem Beispiel das Element mit source="xx".
Wie löse ich dieses Problem? Wie kann ich in XSLT die Elemente in alphabetischer Reihenfolge nach einem Attribut ansprechen?
Ausgangssituation:
Im XML-Dokument gibt es in einem Element (bis zu) vier Kinder. Die haben alle ein Attribut "source".
Im XML-Dokument sind die vier Element wild durcheinander notiert.
Also etwa
Code:
<element source="xx"/> <element source="ff"/> <element source="aa"/> <element source="gg"/>
Zuerst soll (im Beispiel) das Element mit source="aa" abgearbeitet werden, dann das mit "ff" und so weiter.
Problem:
Wenn ich mittels
Code:
<xsl:sort select="@source"/>
Code:
<xsl:when test="position()=1">
Wie löse ich dieses Problem? Wie kann ich in XSLT die Elemente in alphabetischer Reihenfolge nach einem Attribut ansprechen?
Comment