После публикации здесь Объединение использования предыдущего и последующего брата в одном запросе xpath Я хочу сделать то же самое, за исключением того, что я хочу получить узлы до первого вхождения из р2.
Таким образом, измененные данные примера:
<a>
<b property="p1">zyx</b>
<b>wvu</b>
<b>tsr</b>
<b>dcv</b>
<b property="p2">qpo</b>
<b>qcs</b>
<b property="p2">wee</b>
<b>tbg</b>
<b>rty</b>
<b property="p2">qwe</b>
<b>jkl</b>
</a>
Я попытался
/a/b[preceding-sibling::b/@property='p1' and following-sibling::b[1]/@property='p2']
, который дает мне dcv, qcs и rty.Затем я попытался
/a/b[preceding-sibling::b/@property='p1' and (following-sibling::b/@property='p2')[1]]
, который дает мне wvu, tsr, dcv, qpo, qcs, wee, tbg и rty.
Что мне действительно нужно, так это от p1 до первого p2 илиwvu, tsr и dcv.Я перепробовал почти все комбинации [1], но потерпел неудачу и хотел бы получить некоторую помощь по конструкции.