As an alternative to the solutions you've been given, in 2.0 you can write
select="((ancestor::ElementA|ancestor::ElementB)[last()])/foo/bar"
Note the [last()] rather than [1], because the result of a union is in
document order. Because of this, the ancestor::*[self::A|self::B][1]
approach might well be more efficient.
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: chris [mailto:oneskiingfool(_at_)gmail(_dot_)com]
Sent: 15 June 2005 19:35
To: xslt
Subject: [xsl] How to select either ElementA -OR- ElementB in an axis
Hello,
This has me stumped. I want to do something simple like this (I'll
keep it short as I think it's self-explanatory)....
<xsl:variable name="myvar" select="ancestor::(ElementA or
ElementB)/foo/bar"/>
... where either ElementA or ElementB is selected, whichever is first.
Any ideas? I'm using XPath 2.0
Thanks!
--~------------------------------------------------------------------
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>
--~--