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: 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: 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>
|