xsl-list
[Top] [All Lists]

RE: Using XPATH axis within a recursive structure to match a descendent node

2005-02-21 08:40:28
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>
--~--