I have been trying to write a XPath statement which will select the first preceding-sibling of a node. That sibling should have a particular node as its child.
For example:
<a>
<c></c>
....
<b></b>
</a>
<a></a>
....
....
<a></a>
<a>
<b> start </b>
</a>
In the above XML, if my context is at the node a
which has start
text inside its child b
. How can I select the preceding node a
whose child is b
?
I tried preceding-sibling::*[b][1]
but it only selects the node a
if b
is its first child. I also tried preceding-sibling::*[1][b]
but it only checks the first preceding a
node and if it doesn't contains b
, the test fails.
Note: I am using XSLT 1.0
Can anyone suggest me a solution?
Thnx in advance!!