Try this:
<xsl:template match="document">
<xsl:sequence select="f:group(*, 1)"/>
</xsl:template>
<xsl:function name="f:group">
<xsl:param name="input"/>
<xsl:param name="level"/>
<xsl:for-each-group select="$input"
group-starting-with="*[(_at_)function='section'][(_at_)level=$level]">
<section>
<xsl:sequence select="current-group()[(_at_)level=$level]"/>
<!-- except that you may want to lose the function and level
attributes -->
<xsl:sequence
select="f:group(current-group()[not(@level=$level)],$level+1)"/>
</section>
</xsl:for-each-group>
</xsl:function>
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: Vincent De Groote [mailto:list(_dot_)encelade(_at_)gmail(_dot_)com]
Sent: 04 April 2009 14:51
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Grouping problem
Hello,
I need to structure a document, based on text fragments.
I have a flat xml file like this:
<document>
<text-fragment function='section' level='1'> Some text
</text-fragment>
<text-fragment> Some text </text-fragment>
<text-fragment> Some text </text-fragment>
<text-fragment> Some text </text-fragment>
<text-fragment function='section' level='2'> Some text
</text-fragment>
<text-fragment> Some text </text-fragment>
<text-fragment> Some text </text-fragment>
<text-fragment> Some text </text-fragment>
<text-fragment function='section' level='2'> Some text
</text-fragment>
<text-fragment> Some text </text-fragment>
<text-fragment> Some text </text-fragment>
<text-fragment> Some text </text-fragment>
<text-fragment function='section' level='1'> Some text
</text-fragment>
<text-fragment> Some text </text-fragment>
<text-fragment> Some text </text-fragment>
<text-fragment> Some text </text-fragment>
<document>
and I want to structure the document like this:
<document>
<section>
Some text-fragments ...
<section>
Some text-fragments ...
</section>
</section>
<section>
... Some fragments for the second section ...
</section>
</document>
Can you give me some methods, hints, references on how to do this ?
I have already looked on Muenchian grouping, xslt2 groups,
but I cannot find the way to do it.
Thanks for your replies and your time ..;
Vincent De Groote
--~------------------------------------------------------------------
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>
--~--