Subject: Re: [xsl] Multiple level filtering with XSLT From: David Carlisle <davidc@xxxxxxxxx> Date: Thu, 22 Jul 2004 16:41:30 +0100 |
change <xsl:when test="local-name()='c'"> <xsl:if test="not(@x=1)"> to <xsl:when test="local-name()='c'"> <xsl:if test="not(@x=1) and (not (d) or d[@x<7])"> however why match on * and then have a big xsl:choose switch, especially one using local-name() It's almost always better to use <xsl:when test="self::c"> rather than <xsl:when test="local-name()='c'"> and in this case you could just use template matching which would make it much easier to swap new filters in or out: <xsl:template match="*"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:apply-templates/> </xsl:copy> </xsl:template> <!-- empty templates for filters --> <xsl:template match="c[@x=1 or not(*[not(self::d[@x>=7)] ])]"/> <xsl:template match="d[@x>=7]"/> David ________________________________________________________________________ This e-mail has been scanned for all viruses by Star Internet. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk ________________________________________________________________________
Current Thread |
---|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Multiple level filtering with, Jeff Cann | Thread | RE: [xsl] Multiple level filtering , Jeff Cann |
RE: [xsl] xsl:variable, cknell | Date | RE: AW: [xsl] xsl:variable, Passin, Tom |
Month |