Вы могли бы просто написать //A|//B
(предыдущий, похоже, не работал, за исключением одного онлайн-тестера xpath, который научит меня доверять им).Хотя это дважды обойдёт дерево.
Ваше первоначальное выражение гласило: дайте мне все элементы (//*
), у которых есть дочерний элемент с именем A или B ([A|B]
), потому что, когда предикатная часть[] bit) оценивается, узел контекста совпадает с узлом, который вы исследуете, поэтому все в предикате относится к этому контексту.