What about:
<xsl:for-each-group select="$seq" group-by=".">
<xsl:sequence select="current-group()[$i]"/.
</xsl:for-each-group>
Probably the best XSLT solution.
However, the task was XPath-only.
--
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
Never fight an inanimate object
-------------------------------------
You've achieved success in your field when you don't know whether what
you're doing is work or play
On Tue, Nov 18, 2008 at 7:21 AM, Michael Kay <mike(_at_)saxonica(_dot_)com>
wrote:
for $d in distinct-values($seq) return $d[count($seq[. eq $d]) ge $i]
equivalent? I think it is, and probably a lot more
efficient, although it is longer.
They are both O(n^2).
What about:
<xsl:for-each-group select="$seq" group-by=".">
<xsl:sequence select="current-group()[$i]"/.
</xsl:for-each-group>
which also scores quite well on brevity, I think - in syntax tree form, it
has 6 nodes which is the same as Dimitre's expression; and I think it rates
higher on both efficiency and clarity.
Michael Kay
http://www.saxonica.com/
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--