[xsl] grouping issue (part 2)

Subject: [xsl] grouping issue (part 2)
From: Terry Ofner <tdofner@xxxxxxxxx>
Date: Thu, 22 Apr 2010 18:08:18 -0400
     I am having group-adjacent problems. Here is a snippet of starting
document:


     <narrative name="1A">
      <para>Directions: Read the selection....</para>
      <para><b>Jason and the Golden Fleece</b></para>
      <para><i>....</i></para>
      <table>
      <!--lots of rows and cells-->
       </table>
    </narrative>


    Template
    <xsl:template match="narrative">
        <xsl:copy>
           <xsl:copy-of select="@*"/>
            <xsl:for-each-group select="*" group-adjacent="name()">
                <xsl:choose>
                    <xsl:when test="self::para | self::table">
                        <text>
                            <xsl:apply-templates select="current-group()"/>
                        </text>
                    </xsl:when>
                    <xsl:otherwise>
                        <xsl:apply-templates select="current-group()"/>
                    </xsl:otherwise>
                </xsl:choose>

            </xsl:for-each-group>
        </xsl:copy>
    </xsl:template>


    Gives me this output:

   <narrative name="1A">
  <text>
    <para>Directions: Read the selection....</para>
    <para><b>Jason and the Golden Fleece</b></para>
    <para><i>....</i></para>
  </text>
  <text>
    <table>
      <!--lots of rows and cells-->
    </table>
  </text>
</narrative>

I am seeking this:

<narrative name="1A">
  <text>
    <para>Directions: Read the selection....</para>
    <para><b>Jason and the Golden Fleece</b></para>
    <para><i>....</i></para>
    <table>
      <!--lots of rows and cells-->
    </table>
  </text>
</narrative>

Thanks in advance for any hints.

Current Thread