Thx for your answer. I´ll read it
cheers
Patrick Szabo
EPD / XSLT Konvertierung
Tel.: +43-1-534 52-1573
Fax.: +43-1-534 52-1573
patrick(_dot_)szabo(_at_)lexisnexis(_dot_)at
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(_at_)saxonica(_dot_)com]
Gesendet: Donnerstag, 20. November 2008 16:36
An: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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(_dot_)szabo(_at_)lexisnexis(_dot_)at]
Sent: 20 November 2008 15:30
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] layered lists
Hi,
I´m 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>
...
I´m desperate -.-, can anyone help me ?!
Patrick Szabo
EPD / XSLT Konvertierung
Tel.: +43-1-534 52-1573
Fax.: +43-1-534 52-1573
patrick(_dot_)szabo(_at_)lexisnexis(_dot_)at
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>
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--