xsl-list
[Top] [All Lists]

Re: [xsl] preceding-sibling in a group

2021-05-20 15:35:56
On 20.05.2021 22:20, rick(_at_)rickquatro(_dot_)com wrote:
The idea is that when I see a “NOTE” string, I want that entry and all
following within the same group to be <note> elements. So I am look for
preceding-sibling or self that contains “NOTE” but restricted to the
same group. I am using XSLT 3. Thank you very much.

Perhaps using an inner group-starting-with:

  <xsl:template match="dataroot">
    <root>
      <xsl:for-each-group select="*" group-by="FIG_NO">
        <entry>
          <figure>{current-grouping-key()}</figure>
          <xsl:for-each-group select="current-group()"
group-starting-with="*[PART_DES[matches(., 'NOTE')]]">
            <xsl:choose>
              <xsl:when test="self::*[PART_DES[matches(., 'NOTE')]]">
                <xsl:iterate select="current-group()">
                  <note>{PART_DES}</note>
                </xsl:iterate>
              </xsl:when>
              <xsl:otherwise>
                <xsl:iterate select="current-group()">
                  <description>{PART_DES}</description>
                </xsl:iterate>
              </xsl:otherwise>
            </xsl:choose>
          </xsl:for-each-group>
        </entry>
      </xsl:for-each-group>
    </root>
  </xsl:template>
--~----------------------------------------------------------------
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>