//
в середине пути - сокращение для descendant-or-self::node()
, поэтому, если вы сделаете
//div/div//a[1]
, это фактически означает
//div/div/descendant-or-self::node()/a[1]
Это выбирает первого потомка a
из всех узлов-потомков.То, что вы хотите:
//div/div/descendant::a[1]
, который выберет первого потомка a
.