Более идиоматическое (и я осмелюсь сказать, читаемым) способ получить все div
и span
элементов, имеющих class="foo"
это:
//*[(self::div or self::span) and @class="foo"]
На английском языке:
Выберите все элементы, сами являются div или span и имеют атрибут класса, значение которого «foo»
As для первоначального вопроса, следующие выражения возвращают одинаковые результаты:
(//div | //span)[@class="foo"]
//div[@class="foo"] | //span[@class="foo"]
Первый дает множество, являющееся объединением всех div
и span
элементов в документе, дополнительно фильтруется, чтобы включать только те, которые имеют class="foo"
, а последний дает вам объединение 1) набора всех div
элементов, имеющих class="foo"
, и 2) набор всех элементов span
, имеющих class="foo"
.
Должно быть достаточно очевидно, что эти два набора содержат одно и то же.
любить изучать новые вещи ... так +1 –