Subject: Re: [xsl] with XPath 1.0, select all following sibling elements of name "foo" up to the first non-"foo" element From: "Leo Studer leo.studer@xxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 19 Feb 2021 16:43:06 -0000 |
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.p.carlisle@xxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> 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 <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/>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] with XPath 1.0, select al, Wendell Piez wapiez@ | Thread | Re: [xsl] with XPath 1.0, select al, Wendell Piez wapiez@ |
Re: [xsl] with XPath 1.0, select al, Wolfhart Totschnig w | Date | Re: [xsl] with XPath 1.0, select al, Wendell Piez wapiez@ |
Month |