|
Subject: Re: [xsl] Grouping lists from flat to nested From: Martin Honnen <Martin.Honnen@xxxxxx> Date: Mon, 31 Jan 2011 15:05:56 +0100 |
I've chunked my grouping attempts and indeed there is another grouping happening later (dividing the headers with the following elements into nested sections) but here I only wanted to group the lists properly. I found it rather confusing to group too much at a time. To answer your question: I would not want to nest the p elements. I've just added the level attribute here to prevent these elements from being nested within the lists (because that's what happening if i remove the attribute).
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:mf="http://example.com/mf" version="2.0" exclude-result-prefixes="xs mf">
<xsl:strip-space elements="*"/> <xsl:output indent="yes"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@*, node()"/>
</xsl:copy>
</xsl:template> <xsl:template match="item[@level]">
<item>
<xsl:apply-templates/>
</item>
</xsl:template> <xsl:template match="test">
<xsl:copy>
<xsl:for-each-group select="*" group-adjacent="boolean(self::item)">
<xsl:choose>
<xsl:when test="current-grouping-key()">
<xsl:sequence select="mf:group(current-group(), 0)"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="current-group()"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each-group>
</xsl:copy>
</xsl:template><test> <p level="0">Der als Filmregisseur <hi rend="bo">Alan Smithee</hi> ist ein.. </p> <p level="0">Das Pseudonym.. .</p> <p level="0">Der Regisseur...</p> <head2 level="0">Wissenswertes</head2> <item level="0" type="ul">Alternative Schreibweisen..</item> <item level="0" type="ul">Eine alternative Theorie...</item> <item level="0" type="ul">Zu den ... </item> <item level="1" type="ul">Don </item> <item level="1" type="ul">David Lynch </item> <item level="1" type="ul">Chris Christensen </item> <item level="1" type="ul">Stuart Rosenberg</item> <item level="1" type="ul">Richard C. Sarafian</item> <item level="1" type="ul">Dennis Hopper </item> <item level="2" type="ul"> level 3 ulitem</item> <item level="1" type="ul">Arthur Hiller (fC<r ), </item> <item level="1" type="ul">Rick Rosenthal (Birds II) und </item> <item level="1" type="ul">Kevin Yagher </item> <item level="0" type="ul">Zu den Drehbuchautoren </item> <item level="1" type="ul">Sam Raimi und Ivan Raimi </item> <head2 level="0">Weblinks</head2> </test>
<test>
<p level="0">Der als Filmregisseur <hi rend="bo">Alan Smithee</hi>
ist ein.. </p>
<p level="0">Das Pseudonym.. .</p>
<p level="0">Der Regisseur...</p>
<head2 level="0">Wissenswertes</head2>
<list type="ul">
<item>Alternative Schreibweisen..</item>
<item>Eine alternative Theorie...</item>
<item>Zu den ... </item>
<list type="ul">
<item>Don </item>
<item>David Lynch </item>
<item>Chris Christensen </item>
<item>Stuart Rosenberg</item>
<item>Richard C. Sarafian</item>
<item>Dennis Hopper </item>
<list type="ul">
<item> level 3 ulitem</item>
</list>
<item>Arthur Hiller (fbbr ), </item>
<item>Rick Rosenthal (Birds II) und </item>
<item>Kevin Yagher </item>
</list>
<item>Zu den Drehbuchautoren </item>
<list type="ul">
<item>Sam Raimi und Ivan Raimi </item>
</list>
</list>
<head2 level="0">Weblinks</head2>
</test>Martin Honnen http://msmvps.com/blogs/martin_honnen/
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Grouping lists from flat , Stefanie Haupt | Thread | Re: [xsl] Grouping lists from flat , Stefanie Haupt |
| Re: [xsl] Grouping lists from flat , Stefanie Haupt | Date | [xsl] EMF, Rolf Schumacher |
| Month |