To put a conditional if test against the content of the XML file, add an <xsl:if> element to the XSL document.
Syntax
<xsl:if test="expression">
...some output if the expression is true...
</xsl:if>
Where to Put the <xsl:if> Element
To add a conditional test, add the <xsl:if> element inside the <xsl:for-each> element in the XSL file:
Example
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Title</th>
<th>Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<xsl:if test="price > 10">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Note: The value of the required test attribute contains the expression to be evaluated.
The code above will only output the title and artist elements of the CDs that has a price that is higher than 10.
The same result can be achieved by using an XPath expression like in the previous example.
Try it yourself
Click here to try it yourself (copy and paste the XSL in the XSL pane)
Note
If there are no results shown in the bottom pane when you click the previous link, add the URL to the compatibility list as explained in Prerequisites.