Оператор XPath OR для разных узлов

Как я могу сделать с XPath:

//bookstore/book/title or //bookstore/city/zipcode/title

Просто //title не будет работать, потому что у меня также есть //bookstore/magazine/title

p.s. Я видел много или примеров, но главным образом с атрибутами или одной структурой node.

Ответ 1

Все title узлы с zipcode или book node как родительские:

Версия 1:

//title[parent::zipcode|parent::book]

Версия 2:

//bookstore/book/title|//bookstore/city/zipcode/title

Ответ 2

Если вы хотите выбрать только один из двух узлов с оператором union, вы можете использовать это решение: (//bookstore/book/title | //bookstore/city/zipcode/title)[1]

Ответ 3

Это элемент имеет два xpath. Затем вы можете написать два xpath, как показано ниже:

xpath1 | xpath2

Например:

//input[@name="username"] | //input[@id="wm_login-username"]