Programmierung XML
Sortieren von Daten
Unübersichtliche Listen ___
Die Reihenfolge von Daten ist zum Beispiel besonders bei langen unübersichtlichen Listen sehr wichtig. Das Sortieren der Daten kann mit XSLT bestimmt und beeinflusst werden. Wird das Element xsl:sort definiert, so besagt es, dass die einzufügenden Inhalte vorher zu sortieren sind.Durch die Attribute select, data-type, lang, order und case-order kann die Sortierung näher bestimmt werden:
select: enthält einen Pattern (Standard ist .), der beschreibt, welche Knoten sortiert werden sollen.
– lang: enthält eine Sprachdefinition (zumBeispiel de, en, ?),die zur Sortierung verwendet werden soll.
– data-type: beschreibt, ob die zu sortierenden Knoten wie Strings (text/Standard), Zahlen (number) oder andere Datentypen (Angabe des Datentyps nach XML-Names) sortiert werden sollen.
– order: beschreibt, ob die Daten aufsteigend (ascending/Standard) oder absteigend (descending) sortiert werden soll.
– case-order: beschreibt, ob bei data-type=”text” die kleinen (upper-first) oder die großen Buchstaben (lower-first) an den ersten Stellen einsortiert werden sollen.
Als Beispiel soll das folgende Adressbuch sortiert nach Namen ausgegeben werden:
Musterstrasse 14
Musterhausen
Gibts-Nicht-Weg 37
Augsburg
Hauptstrasse 001
Berlin
Bahnhofsweg 123
Hamburg
Um die gewünschte Ausgabe zu realisieren, ist folgendes Stylesheet erforderlich:
Kunden
Kunde | Strasse | PLZ Ort |
---|---|---|
Zu beachten ist, dass das xsl:sort-Element nur innerhalb von xsl:apply-templates oder xsl:for-each auftreten darf.