Firstly, put the xsl:when condition into the xsl:for-each select
expression:
<xsl:for-each select="xdql/object/content/content_chunk
[(product = $product) or ($product = 'All')]">
Then move this to a variable:
<xsl:variable name="p" select="xdql/object/content/content_chunk
[(product = $product) or ($product = 'All')]">
<xsl:for-each select="$p">
Then test if $p is non-empty:
<xsl:if test="$p">...
Michael Kay
I am trying to implement some logic to see if my XSL code
found, and then displayed, any records. Try as I may I cannot
find a clean way to do this. I cannot set a flag, nor can I
increment a count when I find a record so I don't know how
else to trap this. If no records meet the criteria then I'd
simply like to output a 'No Records Found' message.
The code below is an extract from the XSL, if I don't display
any results then at the end I want to print 'No records found'.
Any ideas? Thanks!
<xsl:template match="/">
<xsl:for-each select="xdql/object/content/content_chunk">
<xsl:sort select="content_link"/>
<xsl:choose>
<xsl:when test="((product = $product) or ($product = 'All'))">
<!-- I need to know if I ever got here .... -->
<a>
<xsl:attribute name="href"><xsl:value-of
select="content_link/@ref"/></xsl:attribute>
<xsl:value-of select="content_link"/>
</a>
<br/>
</xsl:when>
</xsl:choose>
</xsl:for-each>
<!-- Print 'no records found' if nothing passed the ;when
</xsl:template>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list