Subject: AW: AW: grouping-problem i guess
From: "Szabo, Patrick (LNG-VIE)" <patrick.szabo@xxxxxxxxxxxxx>
Date: Thu, 20 Nov 2008 15:20:37 +0100
|
Thx a lot martin !!!!
It works perfectly...I4ll have to do a few adaptions but that4s a good first
step :)
Thx again
cheers
Patrick Szabo
EPD / XSLT Konvertierung
Tel.: +43-1-534 52-1573
Fax.: +43-1-534 52-1573
patrick.szabo@xxxxxxxxxxxxx
LexisNexis Verlag ARD Orac GmbH & Co KG
Marxergasse 25, 1030 Wien
FN 8333f, Handelsgericht Wien
www.lexisnexis.at
-----Urspr|ngliche Nachricht-----
Von: Martin Honnen [mailto:Martin.Honnen@xxxxxx]
Gesendet: Donnerstag, 20. November 2008 15:10
An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Betreff: Re: AW: grouping-problem i guess
Szabo, Patrick (LNG-VIE) wrote:
> Here an input with more lists
>
> <liste>
> <ziffernliste>
> <listelem><symbol >1.</symbol>text</listelem>
> <listelem><symbol >2.</symbol>text</listelem>
> </ziffernliste>
> <schluss>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</schluss>
> <schluss>YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY</schluss>
> <strichliste>
> <listelem><symbol >-</symbol>text</listelem>
> <listelem><symbol >-</symbol>text</listelem>
> </strichliste>
> <schluss>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</schluss>
> <schluss>BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB</schluss>
>
> </liste>
>
>
> <nummerierte-liste>
> <listnum>1.</listnum>
> <punkt>
> <absatz>text</absatz>
> </punkt>
> <listnum>2.</listnum>
> <punkt>
> <absatz>text</absatz>
>
<absatz>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</absatz>
> <absatz>YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY</absatz>
> </punkt>
> </nummerierte-liste>
> <liste>
> <punkt>
> <absatz>text</absatz>
> </punkt>
> <punkt>
> <absatz>text</absatz>
> <absatz>AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</absatz>
> <absatz>BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB</absatz>
> </punkt>
> </liste>
The following stylesheet produces the described result:
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="liste">
<xsl:for-each-group select="*" group-starting-with="ziffernliste |
strichliste">
<xsl:apply-templates select="current-group()[1]"/>
</xsl:for-each-group>
</xsl:template>
<xsl:template match="ziffernliste">
<nummerierte-liste>
<xsl:apply-templates select="listelem" mode="ziffer"/>
</nummerierte-liste>
</xsl:template>
<xsl:template match="listelem" mode="ziffer">
<listnum>
<xsl:value-of select="symbol"/>
</listnum>
<punkt>
<xsl:apply-templates select="text()"/>
<xsl:if test="position() eq last()">
<xsl:apply-templates select="current-group()[self::schluss]"/>
</xsl:if>
</punkt>
</xsl:template>
<xsl:template match="strichliste">
<liste>
<xsl:apply-templates select="listelem" mode="strich"/>
</liste>
</xsl:template>
<xsl:template match="listelem" mode="strich">
<punkt>
<xsl:apply-templates select="text()"/>
<xsl:if test="position() eq last()">
<xsl:apply-templates select="current-group()[self::schluss]"/>
</xsl:if>
</punkt>
</xsl:template>
<xsl:template match="schluss | listelem/text()">
<absatz>
<xsl:value-of select="."/>
</absatz>
</xsl:template>
</xsl:stylesheet>
--
Martin Honnen
http://JavaScript.FAQTs.com/
|