xsl-list
[Top] [All Lists]

Re: [xsl] Count of template matches

2014-11-04 05:49:35
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
--~--
<Prev in Thread] Current Thread [Next in Thread>