xsl-list
[Top] [All Lists]

Re: How to select either ElementA -OR- ElementB in an axis

2005-06-15 12:37:41
Except that you should steer clear of using name().

Try

<xsl:value-of select="ancestor::*[self::ElementA|self::ElementB][1]"/>

Just tested it with Saxon 8.4.

Bear in mind that "first" is relative to the axis in question. For the 
ancestor axis, that gets the first one relative to the current node and 
walking up the ancestor nodes. Thus, it may very well be the last actual 
value in the sequence, from the perspective of document order.

Jay Bryant
Bryant Communication Services
(presently consulting at Synergistic Solution Technologies)




"Christopher R. Maden" <crism(_at_)maden(_dot_)org> 
06/15/2005 02:25 PM
Please respond to
xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com


To
xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
cc
"chris" <oneskiingfool(_at_)gmail(_dot_)com>
Subject
Re: [xsl] How to select either ElementA -OR- ElementB in an axis






chris wrote:
Thanks for the response.  Are you sure that's correct or am I goofing
it up somehow?  Using Saxon 8.4, I get an error trying to use your
solution...

No, that won't work.  You need to look at all your ancestors, then find
the closest one that matches your pattern:

ancestor::*[name() = 'A' or name() = 'B'][1]

HTH,
Chris
-- 
Christopher R. Maden, Principal Consultant, crism consulting
XML-SGML-HTML-DTDs-schemas-XSL-DSSSL-conversion-training-ebooks-B2B
<URL: http://crism.maden.org/consulting/ >
PGP Fingerprint: BBA6 4085 DED0 E176 D6D4  5DFC AC52 F825 AFEC 58DA


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--