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(_at_)saxonica(_dot_)com
+44 (0) 118 946 5893
On 4 Nov 2014, at 11:28, Wolfgang Laun wolfgang(_dot_)laun(_at_)gmail(_dot_)com
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> 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)
--~----------------------------------------------------------------
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
--~--