A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
Die Instruktion xsl:sort sortiert eine (Knoten-)Sequenz anhand eines durch das select-Attribut ausgewählte Sortierkriterium. Dem Attribut select wird ein relativer XPath-Ausdruck übergeben, der auf jeden Knoten der Sequenz angewandt wird und so dem jeweiligen Knoten ein Wert als Sortierkriterium zugeordnet wird.
Das Sortieren einer Knotensequenz wird hauptsächlich angewandt, wenn die Knoten einzeln abgearbeitet werden. Die Instruktionen hierfür sind xsl:for-each, xsl:for-each-group oder xsl:apply-templates. Das xsl:sort-Element ist dabei immer das erste Kindelement dieser Instruktionen.
Zur spezifizierung der Sortierung kann mit Attributen angegeben werden, als welcher Datentyp das Sortierkriterium behandelt werden soll (data-type), in welcher Reihenfolge die Sortierung erfolgen soll (order), ob bei Sortierkriterien des Datentyp "text" zuerst Groß- oder zu erst Kleinbuchstaben zählen sollen (case-order), welche Sprache, also welches Alphabet dadurch der Sortierung zugrunde liegen soll (lang), die Collation, die beim Vergleich der Sortierkriterien verwendet werden soll (collation) und ob die Sortierung als "nicht stabil" gekennzeichnet werden soll und damit von der Implementierung abhängig ist (stable).
Attribute
select, lang, data-type, order, case-order, collation, stable<?xml version="1.0"encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:template match="/"> <root> <body> <xsl:for-each select="root/section/para"> <xsl:sort select="@style"></xsl:sort> <p><xsl:value-of select="."></xsl:value-of> [<xsl:value-of select="@style"></xsl:value-of>]</p> </xsl:for-each> </body> <body> <xsl:for-each select="root/section/para"> <xsl:sort select="@style" order="descending"></xsl:sort> <p><xsl:value-of select="."></xsl:value-of> [<xsl:value-of select="@style"></xsl:value-of>]</p> </xsl:for-each> </body> </root> </xsl:template> </xsl:stylesheet>
<?xml version="1.0"encoding="UTF-8"?> <root> <body> <p>Paragraph 3 []</p> <p>Paragraph 1 äöü [bold]</p> <p>Paragraph 2 [italic]</p> </body> <body> <p>Paragraph 2 [italic]</p> <p>Paragraph 1 äöü [bold]</p> <p>Paragraph 3 []</p> </body> </root>
<?xml version="1.0"encoding="UTF-8"?> <root> <section> <para style="bold"> Als Gregor Samsa eines Morgens aus unruhigen Träumen erwachte, fand er sich in seinem Bett zu einem ungeheueren Ungeziefer verwandelt. </para> </section> <section> <para style="italic"> Er lag auf seinem panzerartig harten Rücken und sah, wenn er den Kopf ein wenig hob, seinen gewölbten, braunen, von bogenförmigen Versteifungen geteilten Bauch, auf dessen Höhe sich die Bettdecke, zum gänzlichen Niedergleiten bereit, kaum noch erhalten konnte. </para> </section> <section> <para> Seine vielen, im Vergleich zu seinem sonstigen Umfang kläglich dünnen Beine flimmerten ihm hilflos vor den Augen.+ </para> </section> </root>
<?xml version="1.0"encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:template match="/"> <root> <body> <xsl:for-each select="root/section/para"> <xsl:sort select="@style"></xsl:sort> <p>[<xsl:value-of select="@style"></xsl:value-of>] <xsl:value-of select="."></xsl:value-of></p> </xsl:for-each> </body> <body> <xsl:for-each select="root/section/para"> <xsl:sort select="@style" order="descending"></xsl:sort> <p>[<xsl:value-of select="@style"></xsl:value-of>] <xsl:value-of select="."></xsl:value-of></p> </xsl:for-each> </body> </root> </xsl:template> </xsl:stylesheet>
<?xml version="1.0"encoding="UTF-8"?> <root> <body> <p>[] Seine vielen, im Vergleich zu seinem sonstigen Umfang kläglich dünnen Beine flimmerten ihm hilflos vor den Augen. </p> <p>[bold] Als Gregor Samsa eines Morgens aus unruhigen Träumen erwachte, fand er sich in seinem Bett zu einem ungeheueren Ungeziefer verwandelt. </p> <p>[italic] Er lag auf seinem panzerartig harten Rücken und sah, wenn er den Kopf ein wenig hob, seinen gewölbten, braunen, von bogenförmigen Versteifungen geteilten Bauch, auf dessen Höhe sich die Bettdecke, zum gänzlichen Niedergleiten bereit, kaum noch erhalten konnte. </p> </body> <body> <p>[italic] Er lag auf seinem panzerartig harten Rücken und sah, wenn er den Kopf ein wenig hob, seinen gewölbten, braunen, von bogenförmigen Versteifungen geteilten Bauch, auf dessen Höhe sich die Bettdecke, zum gänzlichen Niedergleiten bereit, kaum noch erhalten konnte. </p> <p>[bold] Als Gregor Samsa eines Morgens aus unruhigen Träumen erwachte, fand er sich in seinem Bett zu einem ungeheueren Ungeziefer verwandelt. </p> <p>[] Seine vielen, im Vergleich zu seinem sonstigen Umfang kläglich dünnen Beine flimmerten ihm hilflos vor den Augen. </p> </body> </root>
<?xml version="1.0"encoding="UTF-8"?> <root> <stadt land="de"> <name>Berlin</name> <einwohner>3420786</einwohner> <fläche>891.85</fläche> <gemeinde>11000000</gemeinde> <bewertung>5</bewertung> </stadt> <stadt land="de"> <name>Hamburg</name> <einwohner>1773218</einwohner> <fläche>755.264</fläche> <gemeinde>02000000</gemeinde> <bewertung>4</bewertung> </stadt> <stadt land="fr"> <name>Paris</name> <einwohner>2166200</einwohner> <fläche>105.40</fläche> <bewertung>3</bewertung> </stadt> <stadt land="de"> <name>Ludwigshafen</name> <einwohner>163777</einwohner> <fläche>77.68</fläche> <bewertung>-3</bewertung> </stadt> </root>
<?xml version="1.0"encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:template match="/"> <verzeichnis> <xsl:for-each select="root/stadt"> <xsl:sort select="@land" order="descending"></xsl:sort> <stadt> <name> <xsl:value-of select="name"></xsl:value-of> </name> <land> <xsl:value-of select="@land"></xsl:value-of> </land> </stadt> </xsl:for-each> </verzeichnis> </xsl:template> </xsl:stylesheet>
<?xml version="1.0"encoding="UTF-8"?> <verzeichnis> <stadt> <name>Paris</name> <land>fr</land> </stadt> <stadt> <name>Berlin</name> <land>de</land> </stadt> <stadt> <name>Hamburg</name> <land>de</land> </stadt> <stadt> <name>Ludwigshafen</name> <land>de</land> </stadt> </verzeichnis>
| > nach oben | |
| > zurück zur alphabetischen Liste der XSLT Elemente |