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  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.

questionAnswers(2)

yourAnswerToTheQuestion