xsl:for-each
Syntax:
 
  <xsl:for-each select="pattern" order-by="sorteringskriteria">
          ...
    </xsl:for-each>
   
  
Sorteringen är inte obligatorisk, men select måste anges.
För select gäller de normala reglerna för patterns, se 
  kapitlet om detta.
För order-by används ett eller flera nodnamn. Använder man flera 
  så skall de separeras med semikolon (;) mellan. Normalt sorteras datat 
  i stigande ordning. Vill man sortera i fallande ordning så sätter 
  man ett - före nodens namn. Man kan äen sätta ett plus (+), men 
  det är inte nödvändigt. Nedan några exempel på detta:
<xsl:for-each select="persons/person" order-by="lastname; 
  firstname">
  <xsl:for-each select="persons/person" order-by="lastname; 
  -firstname"> 
Nedan sorteras förare efter namn
 
  
xml23_1.xsl
<?xml version='1.0' encoding="iso-8859-1" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
  	<head><title>Racing</title></head>
  	<body bgcolor="#FFFFFF" text="#000000">
    		<table>
    		<xsl:for-each select="racers/driver" order-by="-name">
      			<tr>
      			
        				<td><xsl:value-of select="name"/></td>
      			
        				<td><xsl:value-of select="nationality"/></td>
      			
        				<td><xsl:value-of select="@type"/></td>
      			
      			</tr>
    		</xsl:for-each>
    		</table>
  	</body>
</html>
</xsl:template>
</xsl:stylesheet>
 Om du har IE 5.0 eller nyare kan du klicka här för att se filen i praktiken
Om du har IE 5.0 eller nyare kan du klicka här för att se filen i praktiken
xml23_1.xml
<?xml version="1.0" encoding="iso-8859-1"?>  
<?xml-stylesheet type="text/xsl" href="xml23_1.xsl"?>
<racers>
    <driver type="F1">
        <name>Mika Häkkinen</name>
        <nationality>Finn</nationality>
        <rating>1</rating>
    </driver>
    <driver type="F1">
        <name>David Coulthard</name>
        <nationality>Scottish</nationality>
        <rating>11</rating>
    </driver>
    <driver type="rally">
        <name>Colin McRae</name>
        <rating>3</rating>
    </driver>
    <driver type="rally">
        <name>Marcus Grönholm</name>
        <nationality>Finn</nationality>
        <rating>2</rating>
    </driver>
</racers>
 Öppna XML filen   Öppna XML konverterad till HTML (Även NS)
Öppna XML filen   Öppna XML konverterad till HTML (Även NS)
I exemplet nedan så försöker vi sortera förarna efter 
  rating (betyg) men det lyckas inte riktigt bra:
 
  
xml23_2.xsl
<?xml version='1.0' encoding="iso-8859-1" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
  	<head><title>Racing</title></head>
  	<body bgcolor="#FFFFFF" text="#000000">
    		<table>
    		<xsl:for-each select="racers/driver" order-by="rating">
      			<tr>
      			
        				<td><xsl:value-of select="name"/></td>
      			
        				<td><xsl:value-of select="nationality"/></td>
      			
        				<td><xsl:value-of select="@type"/></td>
        				<td><xsl:value-of select="rating"/></td>
      			
      			</tr>
    		</xsl:for-each>
    		</table>
  	</body>
</html>
</xsl:template>
</xsl:stylesheet>
 Om du har IE 5.0 eller nyare kan du klicka här för att se filen i praktiken
Om du har IE 5.0 eller nyare kan du klicka här för att se filen i praktiken
 Öppna XML filen   Öppna XML konverterad till HTML (Även NS)
Öppna XML filen   Öppna XML konverterad till HTML (Även NS)
Vi har samma problem som när vi t.ex. görsöker sortera filer 
  vilkas filnamn innehåller siffror. Vi tror att vi sorterar numeriskt, 
  men vi gör en ASCII sortering. Vi måste säga åt XSL tolken 
  att sorteringens skall ske numeriskt. Nedanstående exempel gör detta. 
  Den sorterar även efter namn i fallande ordning (även om det inte 
  har så stor betydelse med vårt testdata):
  
xml23_3.xsl
<?xml version='1.0' encoding="iso-8859-1" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
  	<head><title>Racing</title></head>
  	<body bgcolor="#FFFFFF" text="#000000">
    		<table>
    		<xsl:for-each select="racers/driver" order-by="number(rating); -name">
      			<tr>
      			
        				<td><xsl:value-of select="name"/></td>
      			
        				<td><xsl:value-of select="nationality"/></td>
      			
        				<td><xsl:value-of select="@type"/></td>
        				<td><xsl:value-of select="rating"/></td>
      			
      			</tr>
    		</xsl:for-each>
    		</table>
  	</body>
</html>
</xsl:template>
</xsl:stylesheet>
 Om du har IE 5.0 eller nyare kan du klicka här för att se filen i praktiken
Om du har IE 5.0 eller nyare kan du klicka här för att se filen i praktiken
 Öppna XML filen   Öppna XML konverterad till HTML (Även NS)
Öppna XML filen   Öppna XML konverterad till HTML (Även NS)