|
Subject: Re: [xsl] Preceding Ancestors From: tcn@xxxxxxxxxxxxx (Trevor Nash) Date: Wed, 08 Aug 2001 15:53:51 GMT |
You want the ancestors minus any following: set difference, in other
words.
<xsl:variable name="a" select="ancestor::*/p" />
<xsl:variable name="f" select="following::p" />
<xsl:variable name="in-scope"
select="$a[count(.|$f) != count($f) />
If you are using Saxon, look up difference().
Mike Kay deserves at least half the prize - the answer is of course in
his book (see UnionExpr).
Or you could be modern and allow use before definition -)
Regards,
Trevor Nash
>Well I'm trying to create some sort of scoping rule
>into my XML definition ( well it's already there but
>I'm trying to get at it from deep inside one long
>XPath expression ). What I can't work out is
>how to get at any preceding elements that are in
>my 'scope' i.e. from a file like
>
><s>
> <m>
> <p a="1"/>
> <p a="2"/>
> <m>
> <p a="3"/>
> <p a="4"/>
> <p a="5"/>
> </m>
> <m>
> <p a="6"/>
> <p a="7"/> <---Context is here
> <p a="8"/>
> </m>
> <p a="9"/>
> </m>
></s>
>
>And I'm expecting something like
> <p a="1"/>
> <p a="2"/>
> <p a="6"/>
>
>I've tried ancestor::*/p but that will give me <p a="9"/> too.
>
>Any ideas out there pleeeeze. I'll owe you a beer ( or beverage
>of your choice ) next time you're in Cambridge.
>
>Ta Muchly.
>
>Richard Mitchell
>Software Developer
>http://www.vbnonline.com/
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
--
Traditional training & distance learning,
Consultancy by email
Melvaig Software Engineering Limited
voice: +44 (0) 1445 771 271
email: tcn@xxxxxxxxxxxxx
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] Preceding Ancestors, Richard Mitchell | Thread | RE: [xsl] Preceding Ancestors, Michael Kay |
| RE: [xsl] Preceding Ancestors, Richard Mitchell | Date | [xsl] namespaces and copying trees, Joern Clausen |
| Month |