Re: optional children
Hi Andrew, > <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? Sorry, I think it's because I missed self::b from the list: b and not(*[not(self::b or self::c or self::d)]) should work better. Oleg's solution is neater anyway though, as long as it's unlikely that there'll be hordes of children of a (because if there were lots of children then doing count()s would involve a lot of node visits which would take time). Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format