AW: [xsl] layered lists

Subject: AW: [xsl] layered lists
From: "Szabo, Patrick (LNG-VIE)" <patrick.szabo@xxxxxxxxxxxxx>
Date: Thu, 20 Nov 2008 16:41:18 +0100
Thx for your answer. I4ll read it

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: Michael Kay [mailto:mike@xxxxxxxxxxxx]
Gesendet: Donnerstag, 20. November 2008 16:36
An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Betreff: RE: [xsl] layered lists


You'll find a solution to this problem in the paper at

http://www.idealliance.org/proceedings/xml04/papers/111/mhk-paper.html

See the process-level template in section 3.2 (but you'll need to read from
the beginning to understand it)

Michael Kay
http://www.saxonica.com/

> -----Original Message-----
> From: Szabo, Patrick (LNG-VIE) [mailto:patrick.szabo@xxxxxxxxxxxxx]
> Sent: 20 November 2008 15:30
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] layered lists
>
> Hi,
>
> I4m still using XSLT 2.0 and Saxon 9.
>
> I have another problem with my list thing. Here is an extract of an
> example xml input:
>
> <liste>
> 	<ziffernliste ebene="1">
> 		<listelem><symbol >1.</symbol>text</listelem>
> 		<listelem><symbol >2.</symbol>text</listelem>
> 	</ziffernliste>
> 	<schluss>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</schluss>
> 	<schluss>YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY</schluss>
>
> 	<literaliste ebene="2">
> 		<listelem><symbol >1.</symbol>text</listelem>
> 		<listelem><symbol >2.</symbol>text</listelem>
> 	</literaliste>
> 	<schluss>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</schluss>
> 	<schluss>YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY</schluss>
>
> 	<subliteraliste ebene="3">
> 		<listelem><symbol >1.</symbol>text</listelem>
> 		<listelem><symbol >2.</symbol>text</listelem>
> 	</subliteraliste>
> 	<schluss>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</schluss>
> 	<schluss>YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY</schluss>
>
> 	<strichliste ebene="4">
> 		<listelem><symbol >1.</symbol>text</listelem>
> 		<listelem><symbol >2.</symbol>text</listelem>
> 	</strichliste>
> 	<schluss>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</schluss>
> 	<schluss>YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY</schluss>
>
> 	<ziffernliste ebene="1">
> 		<listelem><symbol >1.</symbol>text</listelem>
> 		<listelem><symbol >2.</symbol>text</listelem>
> 	</ziffernliste>
> 	<schluss>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</schluss>
> 	<schluss>YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY</schluss>
> </liste>
>
> The attribute "ebene" shows wich layer the list sould be in.
>
> Desired output:
>
> <nummerierte-liste>
>             <listnum>1.</listnum>
>             <punkt>
>                <absatz>text</absatz>
>             </punkt>
>             <listnum>2.</listnum>
>             <punkt>
>                <absatz>text</absatz>
>
> <absatz>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</absatz>
>
> <absatz>YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY</absatz>
>             </punkt>
> 		<punkt>
> 			<liste>
>                 		<punkt><absatz>text</absatz></punkt>
>                         <punkt>
>                			<absatz>text</absatz>
>
> <absatz>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</absatz>
>
> <absatz>YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY</absatz>
>             		</punkt>
> 				<punkt>
> 					...next-list...
> 				</punkt>
> 			</liste>
> 		<punkt>
>
> <nummerierte-liste>
>
> So what i want basicly is:
>
> ebene 1
> 	ebene 2
> 		ebene 3
> 			ebene 4
> ebene 1
>
> This input is not how it has to look like. It could also be like:
>
> ebene 1
> 	ebene 2
> 		ebene 3
> 	ebene 2
> 		ebene 3
> 			ebene 4
> 		ebene 3
> ...
>
> My XSLT looks like this (layers not considered):
>
> ...
>  <xsl:template match="ris:liste">
>         <xsl:for-each-group select="*"
> group-starting-with="ris:ziffernliste | ris:strichliste |
> ris:literaliste | ris:subliteraliste">
>             <xsl:apply-templates select="current-group()[1]"/>
>         </xsl:for-each-group>
>     </xsl:template>
>
>     <xsl:template match="ris:ziffernliste">
>         <nummerierte-liste>
>             <xsl:apply-templates select="ris:listelem" mode="ziffer"/>
>         </nummerierte-liste>
>     </xsl:template>
>
>     <xsl:template match="ris:listelem" mode="ziffer">
>         <listnum>
>             <xsl:apply-templates select="ris:symbol"/>
>         </listnum>
>         <punkt>
>             <absatz><xsl:apply-templates
> select="node()[not(self::ris:symbol)]"/></absatz>
>             <xsl:if test="position() eq last()">
>                 <xsl:apply-templates
> select="current-group()[self::ris:schluss]"/>
>             </xsl:if>
>         </punkt>
>     </xsl:template>
>
>     <xsl:template match="ris:strichliste | ris:literaliste |
> ris:subliteraliste">
>         <liste>
>             <xsl:apply-templates select="ris:listelem"
> mode="otherlists"/>
>         </liste>
>     </xsl:template>
>
>     <xsl:template match="ris:listelem" mode="otherlists">
>         <punkt>
>             <absatz><xsl:apply-templates
> select="node()[not(self::ris:symbol)]"/></absatz>
>             <xsl:if test="position() eq last()">
>                 <xsl:apply-templates
> select="current-group()[self::ris:schluss]"/>
>             </xsl:if>
>         </punkt>
>     </xsl:template>
>
>     <xsl:template match="ris:schluss">
>         <absatz>
>             <xsl:apply-templates/>
>         </absatz>
>     </xsl:template>
>
>     <xsl:template match="ris:symbol">
>         <xsl:apply-templates/>
>     </xsl:template>
> ...
>
>
>
> I4m desperate -.-, can anyone help me ?!
>
> 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
> <http://www.lexisnexis.at/>
>
>  <file://C:\Dokumente und
> Einstellungen\szaboP\Anwendungsdaten\Microsoft\Signatures\LN
> Vienna signature-Dateien\image001.jpg>

Current Thread