XSLT Functions and Elements
Estimated study time: 14 minutes.
Beyond templates, XSLT provides a set of built-in elements for outputting values, looping, and branching logic within a stylesheet.
xsl:value-of
<xsl:value-of select="title"/>
Outputs the text value of whatever the XPath expression selects.
xsl:for-each
<ul>
<xsl:for-each select="modules/module">
<li><xsl:value-of select="."/></li>
</xsl:for-each>
</ul>
Loops over every node matching the selection, repeating its content for each one.
xsl:if
<xsl:if test="@level='beginner'">
<p>This course is beginner-friendly.</p>
</xsl:if>
A simple one-way condition — the content only appears if the test is true.
xsl:choose / xsl:when / xsl:otherwise
<xsl:choose>
<xsl:when test="@level='beginner'">
<p>Beginner level</p>
</xsl:when>
<xsl:otherwise>
<p>Advanced level</p>
</xsl:otherwise>
</xsl:choose>
Works like an if/else-if/else chain for more than two possible outcomes.
💡 Tip: Use
xsl:if for a single condition, but reach for xsl:choose as soon as you need more than one branch — it keeps the logic far more readable.