Hi,
I have this flat structure:
<section>
<para class="epigraphpara">...</para>
<para class="epigraphpara">...</para>
<para class="epigraphpara">...</para>
<para class="epigraphpara">...</para>
<para class="epigraphsource">...</para>
<para class="subsection1para"><inline
class="subsection1title">...</inline></para>
<para class="subsection1para">...</para>
<para class="subsection1para">...</para>
<para class="subsection1para">...</para>
<para class="subsection1para">...</para>
<para class="subsection1para">...</para>
<para class="subsection1para">...</para>
<para class="subsection1para">...</para>
<para class="subsection1para">...</para>
<para class="subsection1para"><inline
class="subsection1title">...</inline></para>
<para class="subsection1para">...</para>
<para class="subsection1para">...</para>
<para class="subsection1para">...</para>
<para class="subsection1para">...</para>
</section>
How can I achieve this using xsl:for-each-group:
<section>
<epigraph>
<para class="epigraphpara">...</para>
<para class="epigraphpara">...</para>
<para class="epigraphpara">...</para>
<para class="epigraphpara">...</para>
<para class="epigraphsource">...</para>
</epigraph>
<subsection1>
<title><para class="subsection1para"><inline
class="subsection1title">...</inline></para></title>
<para class="subsection1para">...</para>
<para class="subsection1para">...</para>
<para class="subsection1para">...</para>
<para class="subsection1para">...</para>
<para class="subsection1para">...</para>
<para class="subsection1para">...</para>
<para class="subsection1para">...</para>
<para class="subsection1para">...</para>
</subsection1>
<subsection1>
<title><para class="subsection1para"><inline
class="subsection1title">...</inline></para></title>
<para class="subsection1para">...</para>
<para class="subsection1para">...</para>
<para class="subsection1para">...</para>
<para class="subsection1para">...</para>
</subsection1>
</section>
I must group para[@class=("epigraphpara", "epigraphsource")] into an
<epigraph> element. The para[@class="epigraphsource"] can either appear
1st or last. The para[@class="subsection1para"] must be group for every
para[@class="subsection1para"][child::inline[@class="subsection1title"]].
I have this template so far:
<template match="section">
<xsl:for-each-group select="node()" group-adjacent="@class">
<xsl:choose>
<xsl:when test="current-grouping-key() eq 'epigraphpara'">
<epigraph>
<xsl:apply-templates select="current-group()"/>
</epigraph>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="current-group()"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each-group>
</template>
And I'm stuck at this point cause I don't know how can I include the
other elements. Hope someone can give me ideas on how to work this out.
TIA!
-- Jeff