xsl-list
[Top] [All Lists]

Re: [xsl] Count of template matches

2014-11-04 07:58:34
Michael:
I don't think that I overlooked using position() within template, as
triggered in the apply-templates mode. But as position() is
context-dependent, it will not return the same value as when applied within
a for-each over a summarily constructed sequence of nodes. The requirement
is (cf. that other thread started yesterday) to enumerate certain nodes
across the entire document.

-W

On 4 November 2014 12:49, Michael Kay mike(_at_)saxonica(_dot_)com <
xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

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 <http://www.mulberrytech.com/xsl/xsl-list>
EasyUnsubscribe <http://-list/293509> (by email)


  XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
EasyUnsubscribe <-list/528976> (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>