<xsl:if>
La balise <xsl:if> ... </xsl:if> permet d'effectuer un
choix dans les données du fichier XML.
Exercice 28
Fichier xslt_ex_if_data.xml :
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="xslt_ex_if.xslt"?>
<namelist>
<name>
<item>a1</item>
<item>a2</item>
<item>a3</item>
</name>
<name>
<item>b1</item>
<item>b2</item>
<item>b3</item>
</name>
<name>
<item>c1</item>
<item>c2</item>
<item>c3</item>
</name>
</namelist>
Fichier xslt_ex_if.xslt :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="namelist">
<table style="border:1px solid black">
<xsl:apply-templates select="name"/>
</table>
</xsl:template>
<xsl:template match="name">
<tr>
<xsl:if test="(position() mod 2) = 0">
<xsl:attribute name="style">background-color:yellow</xsl:attribute>
</xsl:if>
<xsl:apply-templates/>
<xsl:if test="not(position()=last())">
<td style="border:1px solid black">extra</td>
</xsl:if>
</tr>
</xsl:template>
<xsl:template match="item">
<td style="border:1px solid black">
<xsl:apply-templates/>
</td>
</xsl:template>
</xsl:stylesheet>
Résultats:
<?xml version="1.0" encoding="UTF-8"?>
<table style="border:1px solid black">
<tr>
<td style="border:1px solid black">a1</td>
<td style="border:1px solid black">a2</td>
<td style="border:1px solid black">a3</td>
<td style="border:1px solid black">extra</td>
</tr>
<tr style="background-color:yellow">
<td style="border:1px solid black">b1</td>
<td style="border:1px solid black">b2</td>
<td style="border:1px solid black">b3</td>
<td style="border:1px solid black">extra</td>
</tr>
<tr>
<td style="border:1px solid black">c1</td>
<td style="border:1px solid black">c2</td>
<td style="border:1px solid black">c3</td>
</tr>
</table>
a1 |
a2 |
a3 |
extra |
b1 |
b2 |
b3 |
extra |
c1 |
c2 |
c3 |