Thx a lot !
Works fine...
regards
Patrick Szabo
XSLT-Entwickler
Tel.: +43 (1) 534 52 - 1573
Fax: +43 (1) 534 52 - 146
Patrick(_dot_)Szabo(_at_)lexisnexis(_dot_)at
LexisNexis Verlag ARD Orac GmbH & Co KG
Marxergasse 25, 1030 Wien
FN 8333f, Handelsgericht Wien
http://www.lexisnexis.at/
-----Ursprüngliche Nachricht-----
Von: Martin Honnen [mailto:Martin(_dot_)Honnen(_at_)gmx(_dot_)de]
Gesendet: Freitag, 02. April 2010 12:07
An: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Betreff: Re: [xsl] grouping problem
Szabo, Patrick (LNG-VIE) wrote:
I've got the following structure:
<rechtliche-begruendung>
<ueberschrift>Gründe:</ueberschrift>
<absatz>I.</absatz>
<rz-zaehlung>1</rz-zaehlung>
<absatz>blabla</absatz>
<rz-zaehlung>2</rz-zaehlung>
<absatz>blabla</absatz>
<absatz>I.</absatz>
<rz-zaehlung>3</rz-zaehlung>
<absatz>blabla</absatz>
<absatz>blabla</absatz>
<rz-zaehlung>4</rz-zaehlung>
<absatz>blabla</absatz>
<absatz>II.</absatz>
<rz-zaehlung>5</rz-zaehlung>
<absatz>blabla</absatz>
</rechtliche-begruendung>
It should look like this after grouping:
<rechtliche-begruendung>
<ueberschrift>Gründe:</ueberschrift>
<absatz>I.</absatz>
<randziffer>
<rz-zaehlung>1</rz-zaehlung>
<absatz>blabla</absatz>
</randziffer>
<randziffer>
<rz-zaehlung>2</rz-zaehlung>
<absatz>blabla</absatz>
</randziffer>
<absatz>I.</absatz>
<randziffer>
<rz-zaehlung>3</rz-zaehlung>
<absatz>blabla</absatz>
<absatz>blabla</absatz>
</randziffer>
<randziffer>
<rz-zaehlung>4</rz-zaehlung>
<absatz>blabla</absatz>
</randziffer>
<absatz>II.</absatz>
<randziffer>
<rz-zaehlung>5</rz-zaehlung>
<absatz>blabla</absatz>
</randziffer>
</rechtliche-begruendung>
So a group is starting with rz-zeahlung.
The problem is that i don't want to have those <absatz> elements in the
groups that
contain roman numbers...
The following should do:
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<xsl:output indent="yes"/>
<xsl:template match="rechtliche-begruendung">
<xsl:copy>
<xsl:for-each-group select="*" group-adjacent="self::ueberschrift
or self::absatz[matches(., 'I+\.')]">
<xsl:choose>
<xsl:when test="current-grouping-key()">
<xsl:copy-of select="current-group()"/>
</xsl:when>
<xsl:otherwise>
<xsl:for-each-group select="current-group()"
group-starting-with="rz-zaehlung">
<randziffer>
<xsl:copy-of select="current-group()"/>
</randziffer>
</xsl:for-each-group>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each-group>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
--
Martin Honnen
http://msmvps.com/blogs/martin_honnen/
--~------------------------------------------------------------------
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>
--~--