This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Preceding Ancestors
- To: Richard dot Mitchell at vbnonline dot com
- Subject: [xsl] Re: Preceding Ancestors
- From: Dimitre Novatchev <dnovatchev at yahoo dot com>
- Date: Wed, 8 Aug 2001 10:14:13 -0700 (PDT)
- Cc: xsl-list at lists dot mulberrytech dot com
- Reply-To: xsl-list at lists dot mulberrytech dot com
Hi Richard,
My records show that I had solved your problem before 8 March 2001 -- see the
following:
http://vbxml.com/snippetcentral/main.asp?view=viewsnippet&id=v20010308030644
In your particular case the single XPath expression is:
//p[parent::p or count(.. | $curr/ancestor::node()) = count($curr/ancestor::node() )
and not(@name=../descendant::node()/p/@name ) and count(. | $curr/following::p) !=
count($curr/following::p )]
where $curr is the node for which you need to find the "p" elements in scope.
This will highlight (usng the XPath Visualizer):
<p a="1"
<p a="2"
<p a="6"
<p a="7"
The last element is also hi-lighted, because the current node is in its scope and
knows about itself.
Hope this helped.
Cheers,
Dimitre Novatchev.
Richard Mitchell wrote:
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.
__________________________________________________
Do You Yahoo!?
Make international calls for as low as $.04/minute with Yahoo! Messenger
http://phonecard.yahoo.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list