The <xsl:if> Element
The <xsl:if>
element looks like this:
<xsl:if test="count(zone) > 2"> <xsl:text>Applicable zones: </xsl:text> <xsl:apply-templates select="zone"/> </xsl:if>
The <xsl:if> element,
surprisingly enough, implements an if statement. The element has only one
attribute: test. If the value of
test evaluates to the boolean value
true, then all elements inside the
<xsl:if> are processed. If
test evaluates to false, then the contents of the <xsl:if> element are ignored. (If you
want to implement an if-then-else statement, see the section The <xsl:choose> Element” later in this chapter.)
Notice that we used the character > in the value of the test attribute. If you need to use the
less-than operator (<), you’ll have to use the < entity. The same holds true for the
less-than-or-equal operator (<=).
Converting to boolean values
The <xsl:if>
element is pretty simple, but it’s the first time we’ve had to deal
with boolean values. These values will come up
later, so we might as well discuss them here. Attributes such as the
test attribute of the <xsl:if> element convert whatever
their values happen to be into a boolean value. If that boolean
value is true, the <xsl:if> element is processed. (The
<xsl:when> element, which
we’ll discuss in the section The <xsl:choose> Element”
later in this chapter, has a test
attribute as well.)
[1.0] Here’s the rundown of how various datatypes are converted to boolean values:
- number
If a number is positive or negative zero, it is
false. If a numeric ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access