This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Not So Newbie XPath Question
- To: Bernard Harrison <b_harrison at primus dot com dot au>
- Subject: Re: [xsl] Not So Newbie XPath Question
- From: Jeni Tennison <mail at jenitennison dot com>
- Date: Mon, 19 Feb 2001 14:03:51 +0000
- CC: xsl-list at lists dot mulberrytech dot com
- Organization: Jeni Tennison Consulting Ltd
- References: <3A9118DA.471B979D@primus.com.au>
- Reply-To: xsl-list at lists dot mulberrytech dot com
Hi Bernard,
> Amongst the child elements there is a sequence of zero or more "a"
> elements. I need an XPath expression to select/match the first
> element after this sequence of "a" elements(if present). The first
> element's name after the "a" sequence is unknown. In the above
> example it just happens to be "xp"
It depends if you're selecting or matching. If you're selecting, then
you can say:
go to the z element:
z
from there go to the a elements:
z/a
and from there to any immediately following sibling...
z/a/following-sibling::*[1]
that isn't itself an 'a' element:
z/a/following-sibling::*[1][not(self::a)]
This will only work in a select expression because match patterns
don't allow following-sibling:: axes. For a match pattern, you need
something like you have already or one of its equivalents, like:
z/*[preceding-sibling::a and not(self::a)][1]
or:
z/*[not(self::a)][preceding-sibling::*[1][self::a]]
I hope that helps,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list