У меня этот XML:XPath выбрать все до первого <br />
<test>
<a>
abc
<xyz />
def
<br />
ghi jkl
<br />
mno pqr
</a>
<a>
xxx
</a>
</test>
В каждом <a>
мне нужно, чтобы выбрать все подузлы (даже текстуальные) до первого <br />
. Если нет <br />
, мне нужно выбрать все подносы в заданном <a>
. Таким образом, ожидаемый результат:
abc
<xyz />
def
и
xxx
Я могу выбрать "все перед <br />
", как это:
//a/*[following::br]
... но он выбирает все до последняя<br />
. Мне нужно выбрать все перед первым. Я пробовал вот так:
//a/*[following::br[1]]
... с таким же результатом, как раньше. Они также не выбирают узлы в «не <br />
» <a>
s.
Как это сделать, используя (желательно одно) выражение XPath? Спасибо за любые предложения.
, кажется, работает, спасибо! Теперь я собираюсь изучить, как это работает :-) –
@ RomanHocke работает над объяснением, проверьте это – har07