Subject: Re: Finding the closest preceding element within the containing block
From: Syd Bauman <Syd_Bauman@xxxxxxxxx>
Date: Sun, 20 May 2012 22:14:41 -0400
|
Did you get an answer yet?
I'm suspicious that what you want is
preceding-sibling::c[1]
> Assume a document structure like the one below. The "c" and "d"
> elements are at the same level inside of "b" which is inside of
> "a". Currently, I can find the first "c" in the "b" that encloses
> "d". But that is too far away. I want to find the closest preceding
> "c" within the surrounding "b" when processing the template for
> element "d".
>
> When executing the template for "d", my current path attempt is
> (ancestor::a[1]//c)[1]
> But, if there is no preceding "c" in the "b" element, I'd like to
> detect that, and not find a "c" in any other "b". If I use just
> "preceding::c", I might find a "c" in some other "b", which I don't
> want.
> <a>
> ...
> other elements
> ...
> </a>
> <a>
> ...
> other elements
> ...
> </a>
> <a>
> <b>
> ...
> </b>
> ...
> <b>
> ...
> <c/> <---- My path gets this "c"
> ...
> <c/>
> ...
> <c/> <---- I want this "c" when processing "d"
> ...
> <d/>
> ...
> <c/>
> ...
> </b>
> ...
> <b>
> ...
> </b>
> </a>
> <a>
> ...
> other elements
> ...
> </a>
> ...
|