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

xsl:if

Eftersom XSL är skrivet i XML medför det några konstigheter. Den mest markanta är frånvaron av Else i en If...Then...Endif sats.

xsl:if

Syntax:

<xsl:if test="pattern">
...
</xsl:if>

Observera att det inte finns någon else. Orsaken är att XSL måste vara well-formed XML. Detta gör att tagsen måste matcha varandra. Enda sättet att få en else skulle vara någonting i stil med:

<xsl:if test="pattern">
...
<xsl:else>
...
</xsl:if>

Detta skulle göra att det finns två startags för en sluttag, och detta är inte möjligt i XML. Således: Ingen Else.

Exempel på If:

<xsl:if test="@type[. = 'F1']">
   <tr><td colspan="3">Detta är en F1 förare</td></tr>
</xsl:if>

Ett lite mer avancerat exempel på xsl:if:

xml21_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">

       <!--  sätt in en extra tabellrad om det var en F1 kusk -->
       <xsl:if test="@type[. = 'F1']">
         <tr><td colspan="3">Detta är en F1 förare</td></tr>
       </xsl:if>

       <tr>
       <td><xsl:value-of select="name"/></td>
      
       <td>
       <xsl:if test="nationality[. = 'Finn']">
         <xsl:attribute name="style">background-color:#FFFFCC</xsl:attribute>
       </xsl:if>

       <xsl:value-of select="nationality"/></td>
      
       <td>
       <xsl:if test="@type[. = 'rally']">
         <xsl:attribute name="style">color:#FF0000</xsl:attribute>
       </xsl:if>
      
       <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

Öppna XML filen   Öppna XML konverterad till HTML (Även NS)

Den första if satsen är relativt traditionell och går enkelt att "översätta" till logiken i ett normalt programmeringsspråk.

De två senare is satserna är lite mer speciella. I dessa sätter vi dit en vanlig <td>, d.v.s. ett ordinärt HTML element. Sedan kollar vi någonting med if, och om villkoret är sant så sätter vi in ett style attribut på td:n i efterskott. Om ni inte tror mig så klicka på länken "Öppna XML konverterat till HTML" ovan och granska källkoden för sidan. Detta är imponerande kraft i språket.

 

  Programkodenxsl:choose
XSL
XSL i praktiken
XSL loopar
XSL programmering
XSL patterns
Patterns exempel
Programkoden
xsl:if
xsl:choose
xsl:for-each
xsl:apply-templates
XSL Övningar
XML versioner
Microsofts lösning
Nummer och datum
Typexempel för XSL ...


Top
< Programkoden xsl:choose>
© Anders Enges, Vörå 2002  | 04.10.01 19:03 Visa asp koden