AW: AW: [xsl] grouping-problem i guess

Subject: AW: AW: [xsl] 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: [xsl] 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/

Current Thread