Вместо поиска элементов, у которых все <b/>
равны 5, вы можете искать элементы, у которых нет <b/>
не равных 5. Это семантически то же самое, но более производительно, потому что вам не нужно Рассмотрим всех детей, если кто-либо из них не имеет «5», движок XPath может освободиться рано без оценки остальных.
Другими словами, «все b равны 5» - это то же самое, что «нет b, который не равен 5».
/elements/a[not(b != "5")]
Обратите внимание, что оба выражения верны, если <b/>
нет вообще, вам нужно добавить еще один предикат для этого.