xsl-list
[Top] [All Lists]

Re: [xsl] Template-matching nodes from input vs nodes in variable based on their position

2015-06-22 10:42:13
On Wed, Jun 17, 2015 at 9:22 PM, Dimitre Novatchev
dnovatchev(_at_)gmail(_dot_)com 
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:
   <xsl:variable name="FOO" as="node()+">
       <page>Page number 1</page>
       <page>Page number 2</page>
       <page>Page number 3</page>
       <page>Page number 4</page>
       <page>Page number 5</page>
       <page>Page number 6</page>
       <page>Page number 7</page>
   </xsl:variable>

The nodes in $FOO are parent-less.

and

   match="page[position() = (1,3,5)]"

means:

   match any "page" element that is either the 1st, 3rd or 5th "page" child 
of its parent

But none of these page elements have a parent, therefore they aren't matched.

I learnt this from the answers you all gave and the diagram that Ken
suggested from his book. I am still, nevertheless, trying to reconcile
that with the fact that I can reference a node from $FOO based on its
position in the sequence:

    <xsl:sequence select="$FOO[position() eq 3]"/> → <page>Page number 3</page>

And yet, indeed as per your answers, if I query the position of that
node, the value returned is 1 instead of 3:

    <xsl:sequence select="$FOO[position() eq 3]/position()"/> → 1

which looks bizarre to me.
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--

<Prev in Thread] Current Thread [Next in Thread>