Mer dynamiska XML/XSL filer
Förr eller senare vill man kunna få styrt vad som skall visas lite mer 
"runtime". Den naturliga lösningen är att sända data via adressraden. Nedan är 
en liten XML fil som formateras med en XSL fil. Prova länken "Öppna XML filen" 
och prova klicka på de tre länkar som finns i början av sidan. Observera 
1) 
att det kommer ?typ=rally i adressraden om du klickar på Visa Rally länken och 
2) Ingenting speciellt händer med sidan
Orsaken till att ingenting händer är att XML måste få hjälp av någon form 
av server-program.
Det är lite onödigt att sända hela sidan till browsern, för att sedan 
bara visa några få rader.
För att få den dynamik vi vill ha så måste vi h atillgång till server-side program. Dessa kan 
göras bl.a. i ASP, PHP och Cocoon
demo.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="demo.xsl"?>
<racers>
      <driver type="F1">
          <name>Mika Häkkinen</name>
          <nationality>Finn</nationality>
      </driver>
      <driver type="rally">
          <name>Marcus Grönholm</name>
          <nationality>Finn</nationality>
      </driver>
      <driver type="rally">
          <name>Colin McRae</name>
      </driver>
      <driver type="F1">
          <name>David Couthard</name>
          <nationality>Scottish</nationality>
      </driver>
</racers>
 Öppna XML filen   Öppna XML konverterad till HTML (Även NS)
Öppna XML filen   Öppna XML konverterad till HTML (Även NS)
Nedan är XSL filen som formaterar sidan. Observera xsl:param användningen
demo.xsl
<?xml version='1.0' encoding="iso-8859-1" ?>
<!--  
  	för att få xslt extensinen att fungera i 
  	PHP måste vi använda NYA standarden
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!--  
  	två stycken parametrar
  	typ som har defaultvärdet F1
  	test som har defaultvärdet Vi testar
-->
<xsl:param name="typ">F1</xsl:param>
<xsl:param name="test">Vi testar</xsl:param>
<!--
  	Parametrarna slut
-->
<xsl:template match="/">
<html>
      <head>
          <title>Racing</title>
          <style type="text/css">
              	h4 {font-family:verdana,arial,sans-serif; color:#666666;}
  	body, td {font-family:verdana,arial,sans-serif; color:#666666;}
          </style>
      </head>
      <body bgcolor="#FFFFFF" text="#000000">	
          <!--  skriv ut parametern test -->
          <xsl:value-of select="$test" />	
                <!--  Sätt ut några länkar -->
  	<a>
  	<xsl:attribute name="href">?typ=F1</xsl:attribute>
  	Bara F1</a>  <!--    är ett hårt mellanslag -->
  	<a>
  	<xsl:attribute name="href">?typ=rally</xsl:attribute>
  	Bara rally</a> 
  	<a>
  	<xsl:attribute name="href">?typ=</xsl:attribute>
  	Alla</a>
          <h4>Racerförare <xsl:value-of select="$typ" /></h4>
          <table width="400">
          <tr><td>Namn</td><td>Nationalitet</td><td>Klass</td></tr>
          <xsl:choose>
                
                <!--  är parametern typ tom? Visa i så fall allt -->
  	<xsl:when test="$typ=''">		
  	     <xsl:for-each select="racers/driver">
  	     <xsl:sort select="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>
  	</xsl:when>
  	<xsl:otherwise>
  	    <!--  det fanns en parameter typ. Använd denna som villkor -->  	
  	    <xsl:for-each select="racers/driver[@type=$typ]">
  	     <xsl:sort select="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>
  	</xsl:otherwise>
          </xsl:choose>
          </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