Thanks! I've been testing it a bit now and it works as expected.
I'm having a little trouble mixing it with some of my other templates
used on other parts of the document but I'll probably figure it out.
Or else, I'll ask.
Regards
Jostein
2009/10/19 Michael Kay <mike(_at_)saxonica(_dot_)com>:
The essence of the solution is
<xsl:template match="contentSection">
<h1>Title</h1>
<xsl:for-each-group select="*" group-starting-with="headline">
<xsl:choose>
<xsl:when test="headline">
<level2>
<xsl:apply-templates select="current-group()"/>
</level2>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="current-group()"/>
</xsl:otherwise>
</
</
</
Regards,
Michael Kay
http://www.saxonica.com/
http://twitter.com/michaelhkay
-----Original Message-----
From: Jostein Austvik Jacobsen [mailto:josteinaj(_at_)gmail(_dot_)com]
Sent: 19 October 2009 13:18
To: xsl-list
Subject: [xsl] Grouping by attribute
I've got this flat-structured XML:
<document>
<metaData>
<title>Title</title>
<publisher>Publisher</publisher>
</metaData>
<contentSection>
<p>text</p>
<headline level="2">Headline</headline>
<p>text</p>
<p>text</p>
<headline level="2">Section</headline>
<p>text</p>
<pagenum id="page2"/>
<p>text</p>
<headline level="3">Subsection</headline>
<p>text</p>
<headline level="2">Section</headline>
<p>text</p>
<p>text</p>
</contentSection>
</document>
And want it transformed to this XML:
<body>
<level1>
<h1>Title</h1>
<p>text</p>
<level2>
<h2>Headline</h2>
<p>text</p>
<p>text</p>
</level2>
<level2>
<h2>Section</h2>
<p>text</p>
<pagenum id="page2"/>
<p>text</p>
<level3>
<h3>Subsection</h3>
<p>text</p>
</level3>
</level2>
<level2>
<h2>Section</h2>
<p>text</p>
<p>text</p>
</level2>
</level1>
</body>
How would I do that using XSLT? XSLT 2.0 solutions are ok.
Regards
Jostein
--~------------------------------------------------------------------
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>
--~--