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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] layered lists, Michael Kay | Thread | [xsl] layered lists, Szabo, Patrick (LNG- |
RE: [xsl] layered lists, Michael Kay | Date | [xsl] Issue with large XML doc and , Marijan (Mario) Madu |
Month |