In XPath 2.0,
.//load except .//gui//load
or
for $this in . return $this//load[ancestor::gui[1] is $this]
This is a peculiar construct needed because XPath does not have real
variables; in XQuery you could write
let $this := .
return $this//load[ancestor::gui[1] is $this]
In XSLT (1.0 or 2.0) you could write
.//load[ancestor::gui[1] is current()]
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: ben senior [mailto:ben(_at_)autonomic(_dot_)net]
Sent: 21 February 2005 15:15
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Using XPATH axis within a recursive structure
to match a descendent node
I'm afraid I couldn't think of a better title!
Take a look at the xml below. The goal is to match the load tags of 0
and 1, but NOT 2.
I need an expression which matches ALL load tags that are
descendents of
the current gui tag, but not contained within descendent gui
tags! Does
that make sense to anybody?
i.e. descendant::load will also match 2, which I do not want.
How might
I approach this? Any ideas?
<gui>
<load>
........................*0
something
</load>
<p> blah
<b>
blah
<load>
........................*1
else
</load>
<gui>
<load>
........................*2
<again
</load>
</gui>
</b>
</p>
</gui>
Kindest Regards,
Ben
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--