Subject: Re: [xsl] Does the count() function require access to the whole subtree? From: David Carlisle <davidc@xxxxxxxxx> Date: Sun, 12 Jan 2014 13:27:57 +0000 |
On 12 January 2014 11:10, Costello, Roger L. <costello@xxxxxxxxx> wrote:A couple days ago Michael Kay wrote:
Inspection operations on an element are operations that can be performed while positioned at the start tag.
Inspection operations include: count(), exists(), name().
Absorption operations are operations that require access to the whole subtree.
Absorption operations include: string(), data(), xsl:value-of
Michael, doesn't the count() function require access to the whole subtree? How would a count be conducted by sitting at the top of a subtree? Perhaps you meant to say that the count() function is an absorption operation?
I wondered this too... I'm guessing you could do a look-ahead of the xml parsing the structure without any text nodes, then you have the 'metadata' without the content. Will be interesting to find out...
I think the way to think of it is to see that given a sequence of nodes $seq then count($seq) doesn't require you to access anything that you haven't already accessed (even if you are in a streaming context and some of the nodes are still being streamed)
conversely string-join($seq,'') or $seq/string(.) do require you to fully access the content of every node in the sequence so access to every subtree below each node in the sequence.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Does the count() function, Andrew Welch | Thread | Re: [xsl] Does the count() function, Dimitre Novatchev |
Re: [xsl] Does the count() function, Andrew Welch | Date | Re: [xsl] Does the count() function, Dimitre Novatchev |
Month |