|
Subject: RE: [xsl] Grouping problem From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Sat, 4 Apr 2009 15:31:36 +0100 |
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="*[@function='section'][@level=$level]">
<section>
<xsl:sequence select="current-group()[@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.encelade@xxxxxxxxx]
> Sent: 04 April 2009 14:51
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> 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
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Grouping problem, Martin Honnen | Thread | [xsl] grouping problem, M Balaji |
| Re: [xsl] Grouping problem, Martin Honnen | Date | [xsl] Problem with <xsl:if>, Pierluigi Fabbris |
| Month |