Subject: [xsl] layered lists From: "Szabo, Patrick (LNG-VIE)" <patrick.szabo@xxxxxxxxxxxxx> Date: Thu, 20 Nov 2008 16:29:38 +0100 |
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</absat z> <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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
AW: AW: [xsl] grouping-problem i gu, Szabo, Patrick (LNG- | Thread | RE: [xsl] layered lists, Michael Kay |
AW: AW: [xsl] grouping-problem i gu, Szabo, Patrick (LNG- | Date | RE: [xsl] layered lists, Michael Kay |
Month |