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

Subject: [xsl] Best Way to Select Following Elements With An Ancestor?
From: Eliot Kimber <ekimber@xxxxxxxxxxxx>
Date: Sat, 22 Mar 2014 07:46:47 -0500
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. So simply doing
following::* won't work and the following elements I'm checking for need
not be siblings of the current element.

The solution I arrived at is:

<xsl:variable name="myDitaAncestor" select="ancestor::dita"
as="element()*"/>

    <xsl:variable name="followingWithinDita" as="element()*"
  select="following::*[count(ancestor::dita | $myDitaAncestor) = 1]"
    />

This works but I'm wondering if there's a better solution, either one that
is more efficient or one that is more elegant?


Thanks,

Eliot
bbbbb
Eliot Kimber, Owner
Contrext, LLC
http://contrext.com

Current Thread