XPath: логическое ИЛИ - PullRequest
9 голосов
/ 28 июля 2011

Помогите, пожалуйста, использовать логический оператор ИЛИ в XPATH и выбрать один запрос из этих двух:

1) .//span[@class=\'fob12\']

2) .//p[@class=\'fob12\']

Они различаются только по тегу .

Ответы [ 5 ]

11 голосов
/ 28 июля 2011

Еще один (с OR по запросу):

".//*[(self::p or self::span) and @class = 'fob12']"
9 голосов
/ 28 июля 2011

Требуется объединенное выражение , равное |, поэтому XPath будет:

 .//span[@class="fob12"] | .//p[@class="fob12"]
4 голосов
/ 28 июля 2011

Я мог бы что-то упустить, но следующее должно просто сработать!?

.//span[@class=\'fob12\'] | .//p[@class=\'fob12\']
2 голосов
/ 29 июля 2011

Я бы написал это как .//(p|span)[@class='fob12']. Но я думаю, что требуется XPath 2.0 IIRC.

0 голосов
/ 28 июля 2011

Другой XPath:

.//*[(self::p | self::span)[@class = 'fob12']]
...