XSLT/XPath test for 'Null'

xml, xpath, xslt

Solution

If I understand what you're asking for,

<xsl:if test="$validItems[(Caption | CalltoAction)[not(string(.))]]">

will do it. In other words, "if there is an element in the $validItems node-set that has a Caption or CalltoAction child element whose string value is empty". You could also say

<xsl:if test="$validItems[(Caption | CalltoAction)[. = '']]">

Problem

I have the following which checks for a string within the xml... however, I need to create another test to check for 'Null' or no text within the variable `$validItems` at the 1st line... ``` <xsl:if test="$validItems[(Caption | CalltoAction)[string(.)]]"> <div class="text"> <xsl:choose> <xsl:when test="$horizontal"> <div class="holder"> <div class="frame"> <div class="slides-descriptions"> <xsl:apply-templates select="$validItems" mode="horizontal"/> </div> <div class="switcher"/> </div> </div> </xsl:when> <xsl:otherwise> <div class="slides-descriptions"> <xsl:apply-templates select="$validItems" mode="vertical"/> </div> <div class="switcher"/> </xsl:otherwise> </xsl:choose> </div> </xsl:if> ``` How would I go about testing the variable xsl:if test=$validItems?

Original source