RE: [xsl] optional children

Subject: RE: [xsl] optional children
From: "Andrew Welch" <awelch@xxxxxxxxxxxxxxx>
Date: Mon, 21 Oct 2002 13:22:30 +0100
Oleg:
<xsl:template match="a[count(b|c|d) = count(*)]">
	<foo/>
</xsl:template>

ahhh very nice, I had been trying to come up with a count() based
solution and failing - this looks like the one though.

Jeni:
<xsl:if test="b and not(*[not(self::c or self::d)])">
  <foo />
</xsl:if>

Ok so here you are using not() within a not() to exclude nodes from the
list of excluded nodes... this doesnt work for me but I get the logic
behind it.  Does it fail because not(*[...]) will evaluate to false
before it even gets to the predicates (because <b> must exist already)??
Or will the first predicate always be evaluated if there is one?

cheers
andrew 

> -----Original Message-----
> From: Oleg Tkachenko [mailto:olegt@xxxxxxxxxxxxx]
> Sent: 21 October 2002 12:47
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [xsl] optional children
> 
> 
> Andrew Welch wrote:
> 
> > I want to output  if and only if element  has child *, with
> > optional children  and .
> > *
> 
> What about
> <xsl:template match="a[count(b|c|d) = count(*)]">
> 	<foo/>
> </xsl:template>
> 
> -- 
> Oleg Tkachenko
> eXperanto team
> Multiconn Technologies, Israel
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 
> 
> 
> ---
> Incoming mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.404 / Virus Database: 228 - Release Date: 15/10/2002
>  
> 

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.404 / Virus Database: 228 - Release Date: 15/10/2002
 

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread