[Home] [By Thread] [By Date] [Recent Entries]
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
|

Cart



