[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] Selecting other than certain children


Subject: RE: [xsl] Selecting other than certain children
From: "Conal Tuohy" <conalt@xxxxxxxxxxxxxxx>
Date: Thu, 2 Jan 2003 19:17:02 +1300

Gregory Murphy wrote:

> Assuming an element 'n' with children elements 'c', and some number of
> other, unknown, children elements, the only way that I know
> to test for the
> presence of elements other than 'c' is:
>
> <xsl:template match="n">
>   <xsl:if test="*[name() != 'c']">
>     <!-- Do stuff -->
>   </xsl:if>
> </xsl:template>
>
> This strikes me as somewhat awkward. Is there a more direct test?

It seems OK to me. But you could put the test into the match attribute of
your template, of course.

I have used stuff like this:

<xsl:template match="n[*[not(self::c)]]">
    <!-- Do stuff -->
</xsl:template>

I don't really know if "not(self::c)" is more efficient than "name()!='c'"
but I prefer it for some reason, maybe because there's no function call?

Con


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



Current Thread