Чтобы выбрать упомянутый br, вы можете использовать:
"//p[node()[1][self::br]]/br[1] | //p[node()[last()][self::br]]/br[last()]"
или (возможно) быстрее:
"//p[br]/node()[self::br and (position()=1 or position()=last())]"
Просто получить br, когда первый (или последний) узелр бр.
Это выберет br, например:
<p><br/>hello</p>
<p>hello<br/></p>
и первый и последний br как в:
<p><br/>hello<br/>hello<br/></p>
не средний br как в:
<p>hello<br/>hello</p>
PS: чтобы в итоге получить первый бр в паре, подобной этой <br/><br/>
:
"//br[following::node()[1][self::br]]"