About
XSLT uses the expression language defined by XPath.
Expressions are used in XSLT for a variety of purposes including:
- selecting nodes for processing;
- specifying conditions for different ways of processing a node;
- generating text to be inserted in the result tree.
Articles Related
Example
If test expression
<xsl:template match="myTemplateName">
<xsl:if test="@name='nico'">
<xsl:text>
The attribute name has the value nico
</xsl:text>
</xsl:if>
<xsl:if test="@name">
<xsl:text>
The current node has an name attribute.
</xsl:text>
</xsl:if>
<xsl:if test="childNodeAge">
<xsl:text>
The current node has at least one child element named "childNodeAge"
</xsl:text>
</xsl:if>
<xsl:if test="not(childNodeAge)">
<xsl:text>
The current node doesn't have a child element named "childNodeAge"
</xsl:text>
</xsl:if>
<xsl:if test="count(nodeChildren) > 3">
<xsl:text>
The current node has more than 3 child elements named "nodeChildren".
The logical operator != and < can also be used
</xsl:text>
</xsl:if>
<xsl:if test="(@name = 'nico') or (@yearBirth='1973')">
<xsl:text>
The current node has an attribute name with the value 'nico' or
an other yearBirth attribute with the value '1973'. The operator and can also be used
</xsl:text>
</xsl:if>
<xsl:if test="position()=last()">
<xsl:text>The xpath functions can also be used</xsl:text>
</xsl:if>
<xsl:if test="text()=''">
<xsl:text>The current node contains not text. . is an alias for text(), so you can use [.=""]</xsl:text>
</xsl:if>
<xsl:if test="nodeBelow/text()!=''">
<xsl:text>The node below (namde nodeBelow) contains text.</xsl:text>
</xsl:if>
</xsl:template>