This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: How to check for absence of a node?


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]