xsl-list
[Top] [All Lists]

Re: [xsl] selecting from sequences

2008-12-18 11:08:51
In my style sheet I make a selection of the elements and pass that to a
template. In that template I can reference this sequence as $seq.

Selecting from $seq appears to be not that easy, because I can't use axes.
Axes have a document scope whereas I want to do something within the
sequence.
If for example $seq contains elements a, b, c, b, e:

how do I select
- everything before the first b
- everything from the first b to the end
- the position of the first b?

As $seq[self::b][1]/preceding-sibling::* is not good because it possibly
selects element outside the sequence, but are preceding-siblings in the
document.

$seq[self::b][1]/preceding-sibling::* intersect $seq

would restrict the elements to those in the sequence

The alternative is to copy the nodes into a variable and use that
instead of a sequence, or course refactor your transform so that the
selection and processing aren't separate steps (usually they're not)


-- 
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/

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