XSLT <xsl:if>Element


XSLT 元素参考手册XSLT Element Reference Manual

Definition and Usage

The <xsl:if> element contains a template that is applied only if the specified condition is true.

Tip:Please use <xsl:choose> together with <xsl:when> and <xsl:otherwise> to express multiple condition tests!


Syntax

<xsl:if
test="expression">

<!-- Content: template -->

</xsl:if>

Attributes

Attribute Value Description
test expression Required. Specifies the condition to be tested.


Example

Select the values of title and artist when the price of the CD is higher than 10:

Example 1

<?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 &gt; 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>

Try it Yourself »

Display the title of each CD. If it is not the last or second-to-last CD, insert ", " between each CD title. If it is the last CD, add "!" after the title. If it is the second-to-last CD, add ", and " after the title:

Example 2

<?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>
<p>Titles:
<xsl:for-each select="catalog/cd">
<xsl:value-of select="title"/>
<xsl:if test="position()!=last()">
<xsl:text>, </xsl:text>
</xsl:if>
<xsl:if test="position()=last()-1">
<xsl:text> and </xsl:text>
</xsl:if>
<xsl:if test="position()=last()">
<xsl:text>!</xsl:text>
</xsl:if>
</xsl:for-each>
</p>
</body>
</html>
</xsl:template>

</xsl:stylesheet>

Try it Yourself »


XSLT 元素参考手册XSLT Element Reference Manual Other Extensions