xsl-list
[Top] [All Lists]

Re: [xsl] for-each-group

2018-03-28 11:27:04
On 28.03.2018 18:22, Rick Quatro rick(_at_)rickquatro(_dot_)com wrote:
OK, I think I get it. You are grouping on a string derived from the node name instead of the node itself. This doesn't work for my general intent, because the other elements may not all be the same. For example, I might have this:

<steps>

   <step>

     <para>Intro stuff</para>

     <para>More intro stuff</para>

     <figure/>

     <figure/>

     <para>Conclusion stuff</para>

     <table>More conclusion stuff</table>

     <para>More conclusion stuff</para>

   </step>

</steps>

and I would want the three elements following the last figure to be in a single group.

  <xsl:template match="step">
      <xsl:copy>
<xsl:for-each-group select="*" group-adjacent="if (not(boolean(self::figure))) then true() else (position() - 1 idiv 1)">
              <group>
                  <xsl:apply-templates select="current-group()"/>
              </group>
          </xsl:for-each-group>
      </xsl:copy>
  </xsl:template>

might do
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--

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