|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Find First Descendants That Match Predicate?
Thanks--setting the $here variable was the trick I was failing to see.
Cheers,
E.
--
Eliot Kimber
http://contrext.com
o;?On 12/24/18, 3:31 PM, "David Carlisle d.p.carlisle@xxxxxxxxx"
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
given
<root>
<chapter><title>C1</title>
<wrapper>
<wrapper>
<section><title>S1</title></section>
</wrapper>
<section><title>S2</title>
<section><title>S3</title>
</section>
</section>
</wrapper>
</chapter>
</root>
(I moved /chapter to the end?)
and
<xsl:stylesheet version="3.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="chapter">
<xsl:message select="
let $here:=. return
.//section[empty(ancestor::*[title] except
$here/ancestor-or-self::*[title])]/title
"/>
</xsl:template>
</xsl:stylesheet>
the xpath in the message produces
<title>S1</title><title>S2</title>
David
On Mon, 24 Dec 2018 at 21:13, Graydon graydon@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> On Mon, Dec 24, 2018 at 08:57:40PM -0000, Eliot Kimber
ekimber@xxxxxxxxxxxx scripsit:
> > Using XPath 3:
> [snip]
> > Given a starting node, e.g., the root node (but could be any node in
the hierarchy) I need to find the first titled "child" nodes, so given the
chapter node I need to find S1 and S2 but not S3.
>
> If you meant:
>
> <root>
> <chapter><title>C1</title>
> <wrapper>
> <wrapper>
> <section><title>S1</title>
> </section>
> </wrapper>
> <section><title>S2</title>
> <section><title>S3</title>
> </section>
> </section>
> </wrapper>
> </chapter>
> </root>
>
> then
>
//descendant::*[self::section][title][not(ancestor::*[self::section][title])]
>
> will give you the first titled element of the type you're looking for.
>
> You'll need to put the actual values for "foo" and "bar" in where
there's a predicate for [self::section]; [self:foo or self::bar]
>
> -- Graydon
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








