Existe uma maneira melhor de obter o nó pai do resultado da consulta XPath?
Tendo marcação assim:
<div class="foo">
<div><span class="a1"></span><a href="...">...</a></div>
<div><span class="a2"></span><a href="...">...</a></div>
<div><span class="a1"></span>some text</div>
<div><span class="a3"></span>some text</div>
</div>
Estou interessado em conseguir tudo<a>
esome text
SÓ se adjacentespan
é de classea1
. Então, no final de todo o código, meu resultado deve ser<a>
de primeirodiv
esome text
do terceiro. Seria fácil se<a>
esome text
estava dentrospan
oudiv
teriaclass
atributo, mas sem sorte.
O que estou fazendo agora é procurarspan
coma1
classe:
//div[contains(@class,'foo')]/div/span[contains(@class,'a1')]
então eu recebo seu pai e faço outroquery()
com esse pai como nó de contexto. Isso simplesmente parece longe de ser eficiente, então a questão é, claramente, se existe alguma maneira melhor de alcançar meu objetivo?
O ADENDO DE RESPOSTA
Como por @MarcBresposta aceita, a consulta correta a ser usada é:
//div[contains(@class,'foo')]/div/span[contains(@class,'a1')]/..
mas pelo<a>
pode ser melhor usar:
//div[contains(@class,'foo')]/div/span[contains(@class,'a1')]/../a
o obter o<a>
em vez de seu contêiner.