XMLDynamiska sidor
[ Hem ] Allmänt ASP XML SQL ADO HTML CSS VB Java Design Karta
Grunderna XSL Dynamiska sidor XML i praktiken

Dynamiska sidor

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)

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

  ID, IDREF och IDREFSASP
Dynamiska sidor
ASP
PHP
Cocoon


Top
< ID, IDREF och IDREFS ASP>
© Anders Enges, Vörå 2002  | 08.03.02 10:29 Visa asp koden