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

Subject: Re: Finding the closest node (was Re: [xsl] inconsistent Preceding-Sibling behaviour when nested in For-Each
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Mon, 04 Nov 2002 19:54:07 -0500
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@xxxxxxxxxxxxxxxxxxxx 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



Current Thread