If only section elements can follow intro you can also do:
select=”* except (section[preceding-sibling::section])”
This transform:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="2.0">
<xsl:output indent="yes"/>
<xsl:template match="/">
<result>
<xsl:apply-templates/>
</result>
</xsl:template>
<xsl:template match="chapter">
<xsl:sequence select="* except (section[preceding-sibling::section])"/>
</xsl:template>
</xsl:stylesheet>
Produces this result:
<result>
<title>Title</title>
<intro>
<p>Intro</p>
</intro>
<section/>
</result>
Cheers,
Eliot
--
Eliot Kimber
http://contrext.com
On 4/12/17, 4:19 PM, "Martin Honnen martin(_dot_)honnen(_at_)gmx(_dot_)de"
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:
On 12.04.2017 23:06, Rick Quatro rick(_at_)rickquatro(_dot_)com wrote:
> Hi All,
>
> Here is my xml:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <chapter>
> <title>Title</title>
> <intro>
> <p>Intro</p>
> </intro>
> <section></section>
> <section></section>
> <section></section>
> </chapter>
>
> My context node is the <chapter> element. I want to select everything up
to
> and including the first <section>.
Then one way is
section[1]/(preceding-sibling::node(), .)
in XSLT 2.0.
--~----------------------------------------------------------------
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
--~--