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