xsl-list
[Top] [All Lists]

Re: [xsl] with XPath 1.0, select all following sibling elements of name "foo" up to the first non-"foo" element

2021-02-19 11:00:51
Hi again,

Then too:

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

<xsl:template match="foo[preceding-sibling::*[not(self::foo)]]"/>

(I know it probably doesn't solve the problem as given, which I'm not sure
I remember. So, modes.)

Cheers, Wendell



On Fri, Feb 19, 2021 at 11:43 AM Leo Studer 
leo(_dot_)studer(_at_)varioweb(_dot_)ch <
xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

David, sibling recursion over the foo elements...

    <xsl:template match="b">
        <zzz>
            <xsl:apply-templates select="*[1]/self::foo"/>
        </zzz>
    </xsl:template>

    <xsl:template match="foo">
        <xsl:copy-of select="."/>
        <xsl:apply-templates select="following-sibling::*[1]/self::foo"/>
    </xsl:template>

Cheers
Leo



On 18 Feb 2021, at 22:35, David Carlisle 
d(_dot_)p(_dot_)carlisle(_at_)gmail(_dot_)com <
xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:
Given

<x>

 <b>
  <foo>1</foo>
  <foo>2</foo>
  <bar>x</bar>
  <foo>3</foo>
 </b>

 <b>
  <foo>4</foo>
  <foo>5</foo>
  <foo>6</foo>
 </b>

 <b>
  <bar>y</bar>
  <foo>7</foo>
  <foo>8</foo>
 </b>

</x>


this stylesheet

<xsl:stylesheet version="1.0" xmlns:xsl="
http://www.w3.org/1999/XSL/Transform";>

 <xsl:template match="b">
   <zzz>
   <xsl:apply-templates mode="onlyfoo" select="*[1]"/>
   </zzz>
 </xsl:template>

 <xsl:template mode="onlyfoo" match="*"/>

 <xsl:template mode="onlyfoo" match="foo">
  <xsl:copy-of select="."/>
  <xsl:apply-templates mode="onlyfoo" select="following-sibling::*[1]"/>
 </xsl:template>

</xsl:stylesheet>


produces


 <zzz><foo>1</foo><foo>2</foo></zzz>

 <zzz><foo>4</foo><foo>5</foo><foo>6</foo></zzz>

 <zzz/>


XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/174322> (by
email <>)



-- 
...Wendell Piez... ...wendell -at- nist -dot- gov...
...wendellpiez.com... ...pellucidliterature.org... ...pausepress.org...
...github.com/wendellpiez... ...gitlab.coko.foundation/wendell...
--~----------------------------------------------------------------
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>