Previous | Next | Indexes
Zvon > Tutorials > XSLT 2.0 Tutorial > Sorting (7/8) >

Sorting in xsl:for-each

Element xsl:sort can be also used inside xsl:for-each elements to achieve sorting. In this case it is required that xsl:sort elements are the first children of xsl:for-each.

XSLT

      <xsl:stylesheet
                  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                  version="2.0">
            <xsl:output  method="xml"
                        indent="yes"
                        omit-xml-declaration="yes"/>

            <xsl:template  match="/">
                  <sss>
                        <xsl:for-each  select="/aaa/bbb">
                              <xsl:sort/>
                              <xsl:sort  select="@x"/>
                              <xsl:copy-of  select="."/>
                        </xsl:for-each>
                  </sss>
            </xsl:template>

      </xsl:stylesheet>
XML

      <aaa>
            <bbb  x="1">x</bbb>
            <bbb  x="2">x</bbb>
            <bbb  x="3">b</bbb>
            <bbb  x="4">b</bbb>
            <bbb  x="5">a</bbb>
      </aaa>
Output

      <sss>
            <bbb  x="5">a</bbb>
            <bbb  x="3">b</bbb>
            <bbb  x="4">b</bbb>
            <bbb  x="1">x</bbb>
            <bbb  x="2">x</bbb>
      </sss>


Previous chapter: Number Formatting
Next chapter: Axes
Previous page: Sorting according to several criteria
Next page: Sorting of sequences