xsl-list
[Top] [All Lists]

Re: [xsl] grouping across a collection()

2010-12-20 10:26:58
On Mon, Dec 20, 2010 at 16:10, Michael Kay <mike(_at_)saxonica(_dot_)com> wrote:
On 20/12/2010 15:06, James Cummings wrote:

Hi there,

I have a number of files with tei:l elements in them.  So I create a
collection:
<xsl:variable name="docs" select="collection($path)"/>
and then want to iterate over the collection grouping all first lines
together, all second lines together, etc.

Something like this:

<xsl:for-each-group select="$docs//tei:l" group-by="f:position()">
...
</xsl:for-each-group>

<xsl:function name="f:position" as="xs:integer">
 <xsl:param name="node" as="node()"/>
 <xsl:number select="$node" level="any"/>
</xsl:function>

Oh, that seems to work!  So instead of grouping by position() which
always ends up being the same, this calls a function which gets a
better xsl:number using @level='any'.

Thanks!

-James

--~------------------------------------------------------------------
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>
--~--