xsl-list
[Top] [All Lists]

Re: [xsl] Copy and group XML

2011-01-26 13:40:58
Thanks Michael, it fixed one problem but introduced another.

Input XML:
<play>
 <title>MACBETH</title>
 <scene act="1">
  <stage-direction>A wild open place. Thunder and lightning. Three
Witches enter.</stage-direction>
  <actor>1ST WITCH</actor>
  <speach>When shall we three meet again</speach>
  <speach>In thunder, lightning, or in rain?</speach>
  <actor>2ND WITCH</actor>
  <speach>When the rough-and-tumble's done,</speach>
  <speach>When the battle's lost and won.</speach>
....
</scene act="1">
....
</play>

Transformation:
    <xsl:template match="play">
    <xsl:for-each-group select="*" group-adjacent="(@act, '?')[1]">
        <xsl:choose>
            <xsl:when test="@act">
                <act>
                    <xsl:copy>
                        <xsl:apply-templates  select="@*|node()"/>
                    </xsl:copy>
                </act>
            </xsl:when>
            <xsl:otherwise>
                <xsl:copy>
                    <xsl:apply-templates  select="@*|node()"/>
                </xsl:copy>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:for-each-group>
    </xsl:template>

    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

Result:
Only the first scene of every act grouping is copied. The other scenes
are dropped. Why would this be?

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>