I\'m looking for the right xpath syntax to get a specific parent of an element. Example:
root
|- div
| |
| |----??? ---|
| | |-
Given the XML
<?xml version="1.0"?>
<root>
<foo id="id1">
<foo id="i2">
<baz/>
</foo>
</foo>
</root>
You can find the nearest ancestor foo element from baz using the XPath expression:
//baz/ancestor::foo[1]
Which will select the foo element node of id "i2".
So in your example (if I understand right) once you have got the "a" element you want, you can get "back up" the tree to the nearest ancestor div by appending "/ancestor::div[1]" to your expression.
Use:
/root/div[.//a[@class='1']]/text()
This selects any text node that is a child of any a element that has a class attribute with value '1' and that (the a element) is a descendent of any div element that is a child of the top element named root.