[xsl] Find First Descendants That Match Predicate?

Subject: [xsl] Find First Descendants That Match Predicate?
From: "Eliot Kimber ekimber@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Mon, 24 Dec 2018 20:57:32 -0000
Using XPath 3:

o;?I have an XML structure where there are elements with titles (e.g.,
foo/title, bar/title) that may have an arbitrary of untitled wrappers around
them, e.g.:


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.

I need to do this in a single XPath expression (I'm using the expression to
get a list of nodes that are then being used elsewhere).

I can't figure out how to construct an expression so that it only returns the
descendants of the starting node that match the predicate (e.g. *[title]) and
that are the first such in a breadth-first evaluation.

I feel like there's an obvious solution that I'm just not seeing.



Eliot Kimber

Current Thread