[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Best Way to Select Following Elements With An Ancestor?

Subject: Re: [xsl] Best Way to Select Following Elements With An Ancestor?
From: David Rudel <fwqhgads@xxxxxxxxx>
Date: Sat, 22 Mar 2014 18:16:01 +0100

On Sat, Mar 22, 2014 at 1:46 PM, Eliot Kimber <ekimber@xxxxxxxxxxxx> wrote:
> I have a document where each child of the root element establishes a
> unique content with regard to the output result (in this case,
> corresponding to InDesign frames).
> For a given descendant of one of these elements I need to know if there
> are any following elements within the same context.

I may be thinking about this the wrong way, but it seems like the
situation you describe (some following element exists that is a
descendant of the same context-setting node) is equivalent to saying
"Either this node has a following-sibling, or some ancestor of it has
a following-sibling, not counting the context-setting nodes."

Is the above accurate?

If the above understanding is correct, then a more elegant answer
would be to use recursive functions:

Define a recursive function that uses the following logic:
f($x) = false if $x is one of the context nodes (/child::element())
f($x) = true if $x has any following::sibling elements.
f($x) = f($x/..) if neither of the above statements resolves the answer.

Or, without recursive functions:

Define a variable containing the context-setting nodes:
$context_nodes = /child::element()

Then the predicate you want is:




"A false conclusion, once arrived at and widely accepted is not
dislodged easily, and the less it is understood, the more tenaciously
it is held." - Cantor's Law of Preservation of Ignorance.

Current Thread