Subject: RE: [xsl] Grouping Problems XSLT2.0 From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Wed, 14 Mar 2007 11:23:39 -0000 |
It looks to me like <xsl:for-each-group select="para" group-starting-with="*[class='epigraphpara' or (class='subsection1para' and inline)]"> (then having done hte grouping you need to inspect the first element of each group to see what element to output) Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Jeff Sese [mailto:jsese@xxxxxxxxxxxx] > Sent: 14 March 2007 09:47 > To: Xsl-List > Subject: [xsl] Grouping Problems XSLT2.0 > > 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="subsectio > n1title"]]. > > 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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Grouping Problems XSLT2.0, David Carlisle | Thread | [xsl] spaces in fo, Mati Hadi |
Re: [xsl] how to make all xsl:value, Abel Braaksma | Date | [xsl] XSL Variable not getting set, mIchael wolff |
Month |