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(_at_)multiconn(_dot_)com]
Sent: 21 October 2002 12:47
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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