Re: [xsl] Count of template matches

Subject: Re: [xsl] Count of template matches
From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 4 Nov 2014 11:49:29 -0000
Are you missing the fact that position() can be used during apply-templates
processing, in the same way as during for-each processing?

Michael Kay
Saxonica
mike@xxxxxxxxxxxx
+44 (0) 118 946 5893




On 4 Nov 2014, at 11:28, Wolfgang Laun wolfgang.laun@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:

> A recent post has asked for a way to produce ordinals for the processing of
a set of certain nodes.
>
> If you construct a sequence of the required nodes and iterate it (using
for-each), position() yields the ordinals.
>
> If you use template/apply-templates. you can still determine the offset by
calling index-of. But this has a catch, since index-of still requires the
construction of the overall sequence using an XPath expression. But (and this
is, for me, the catch) that the selection of the nodes that will eventually be
processed depends on attribute values of template+@match and/or
apply-templates+@select. This means that you need two ways to produce the same
sequence of nodes for index-of to work. (I do know that XPath is powerful
enough. so it's not an issue of not being able to - it's just duplicating an
effort.)
>
> A function like fn:nth-time-around() in the context of a template would take
care of the problem, which (apparently) isn't frequent enough to warrant such
a function.
>
> Perhaps I'm simply ignorant of something?
> -W
>
> XSL-List info and archive
> EasyUnsubscribe (by email)

Current Thread