[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] xpath selection problem


Subject: RE: [xsl] xpath selection problem
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Sun, 18 Sep 2005 17:09:24 +0100

In 2.0 you can do

following-sibling::node[@hidden='0'] 
  except 
following-sibling::node[@hidden='1']/(.|following-sibling::node())

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: Gabriel [mailto:gabriel.klappenbach@xxxxxxxxx] 
> Sent: 18 September 2005 16:17
> To: XSL-list
> Subject: [xsl] xpath selection problem
> 
> Hi.
> 
> On a document axis I have a list of nodes like this:
> 
> <node hidden=0>a</node>
> <node hidden=1>b</node>
> <node hidden=1>c</node>
> <node hidden=0>d</node>
> <node hidden=0>e</node>
> <node hidden=0>f</node>
> <node hidden=1>g</node>
> <node hidden=1>h</node>
> <node hidden=1>j</node>
> <node hidden=0>k</node>
> 
> 
> I want to select the group of consecutive nodes that have 
> hidden=1 after the
> context node, that will have hidden=0. So the context node 
> will iterate over
> the list of nodes that have hidden=0.
> 
> So if I were to output the contents of the selections, I 
> would first get
> "bc" and then "ghj"
> 
> 
> How can I express this in xpath without using recursion? Is 
> it possible
> doing this without calling a template that uses recursion? 
> That is, I would
> like to have an expression, something like
> following-sibling::*[@hidden=1], but with the addition that 
> it excludes the
> nodes in the other groups... 
> 
> /Gabriel


Current Thread
Keywords