xsl-list
[Top] [All Lists]

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

2005-02-21 08:45:30
Thank you Michael. I'm sorry I didn't realise that myself!

Ben

Michael Kay wrote:

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>
--~--




--~------------------------------------------------------------------
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>
--~--