This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: How to check for absence of a node?
- To: "Sudhir Malhotra" <sudhirmalhotra123 at hotmail dot com>
- Subject: Re: [xsl] How to check for absence of a node?
- From: Jeni Tennison <mail at jenitennison dot com>
- Date: Fri, 15 Jun 2001 16:15:27 +0100
- CC: xsl-list at lists dot mulberrytech dot com
- Organization: Jeni Tennison Consulting Ltd
- References: <F885JIzpNcedZhotjCj0001938a@hotmail.com>
- Reply-To: xsl-list at lists dot mulberrytech dot com
Hi Sudhir,
> I would like to call error-template in case
>
> A. I don't find the node "format/tr[2]/td[position()>1]", or
The test here is just:
not(format/tr[2]/td[position() > 1])
> B. The value of format/tr[2]/td[position()>1] is "NA"
>From your code, I think you want to know if *all* the tds following
the first are equal to 'NA'. You have to turn the XPath around to make
that test - you want to know if it's *not* the case that *at least
one* of the tds is *not equal to* 'NA':
not(format/tr[2]/td[position() > 1] != 'NA')
So the XSLT should be:
<xsl:variable name="cells"
select="format/tr[2]/td[position() > 1]" />
<xsl:choose>
<xsl:when test="not($cells) or
not($cells != 'NA')">
<xsl:call-template name="error-template" />
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="format" />
</xsl:otherwise>
</xsl:choose>
I hope that helps,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list