xsl-list
[Top] [All Lists]

Re: Finding the closest node (was Re: inconsistent Preceding-Sibling behaviour when nested in For-Each

2002-11-04 17:54:07
At 2002-11-05 00:07 +0000, Peter Flynn wrote:
What if I want to get the closest of some possible (specific) subset of
ancestors? eg (this is Docbook, let us say the current node is an <xref>
in a <para> at some depth within one of the following):

<xsl:variable name="anchor"
            select="ancestor::sidebar |
                    ancestor::warning |
                    ancestor::note |
                    ancestor::orderedlist |
                    ancestor::itemizedlist |
                    ancestor::variablelist |
                    ancestor::varlistentry |
                    ancestor::listitem |
                    ancestor::procedure |
                    ancestor::step |
                    ancestor::footnote"/>

Use "( union|of|ancestors|goes|here )[last()]" because a predicate can be added to the bracketed specification of a set of nodes. What I've proposed obtains the last in document order, which would be the closest ancestor.

I hope this helps, Peter.

......... Ken


--
G. Ken Holman               mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Crane Softwrights Ltd.        http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0  +1(613)489-0999 (F:-0995)
ISBN 0-13-065196-6                     Definitive XSLT and XPath
ISBN 0-13-140374-5                             Definitive XSL-FO
ISBN 1-894049-08-X Practical Transformation Using XSLT and XPath
ISBN 1-894049-10-1             Practical Formatting Using XSL-FO
Next public training:          2002-12-08,2003-02-03,06,03-03,06


XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list