RE: [xsl] xsl grouping problem

Subject: RE: [xsl] xsl grouping problem
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 9 Sep 2005 23:20:34 +0100
I would use

<xsl:for-each-group group-adjacent="self::line or self::line_first or
self::line_last">
  <xsl:choose>
  <xsl:when test="current-grouping-key()">
    <stanza><xsl:copy-of select="current-group()"/></stanza>
  </xsl:when>
  <xsl:otherwise>
    <xsl:copy-of select="current-group()"/>
  </
</

Michael Kay
http://www.saxonica.com/


> -----Original Message-----
> From: Jeff Hatch [mailto:hatchjk@xxxxxxxxxxxxx] 
> Sent: 09 September 2005 14:52
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] xsl grouping problem
> 
> I've been chewing on this for some time now and would love 
> some suggestions.
> Coming from a document-centric environment, I am given xml 
> that looks like this:
> 
> <chapter>
> <para>This is a paragraph in the chapter</para>
> <line_first>This is first line of a stanza of poetry</line_first>
> <line>This is line of poetry</line>
> <line>This is line of poetry</line>
> <line>This is line of poetry</line>
> <line_last>This is last line of a stanza of poetry</line_last>
> <para>This is a paragraph in the chapter</para>
> </chapter>
> 
> The challenge is to perform copy and grouping operations to 
> a) copy all existing
> structure as is, using copy-of, which is not a problem. 
> However, to the above
> xml I wish to apply additional structure to create a poem stanza:
> 
> <chapter>
> <para>This is a paragraph in the chapter</para>
> <stanza>
> <line_first>This is first line of poetry</line_first>
> <line>This is line of poetry</line>
> <line>This is line of poetry</line>
> <line>This is line of poetry</line>
> <line_last>This is last line of poetry</line_last>
> </stanza>
> <para>This is a paragraph in the chapter</para>
> </chapter>
> 
> My difficulty stems from being dealt two dissimilar element 
> names at the
> beginning and end of the block of xml that needs to be 
> grouped. My attempts to
> do this with group-starting-with and group-ending-with have 
> failed. Performing
> group-adjacent on the <line> elements miss the first_ and 
> last_line elements.
> Any thoughts?
> 
> --------------------------------------------------------------
> ----------------
> This message may contain confidential information, and is
> intended only for the use of the individual(s) to whom it
> is addressed.
> --------------------------------------------------------------
> ----------------

Current Thread