[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] How to check for absence of a node?


Subject: Re: [xsl] How to check for absence of a node?
From: Jeni Tennison <mail@xxxxxxxxxxxxxxxx>
Date: Fri, 15 Jun 2001 16:15:27 +0100

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



Current Thread
Keywords