带OR的Xpath表达式

时间:2015-10-28 13:00:33

标签: xpath

我想知道是否有办法在Xpath上验证多个字符串。这是我现在使用的那个:

/td[2][text()[contains(.,'Word1')]]

我想做这样的事情:

/td[2][text()[contains(.,'Word1' OR 'Word2' OR 'Word3')]]

这可能吗?

4 个答案:

答案 0 :(得分:2)

是的,可能:

/td[2][text()[contains(.,'Word1') OR contains(.,'Word2') OR contains(.,'Word3')]]

答案 1 :(得分:2)

更新回答:

我相信,您遇到的问题是区分大小写,请尝试以小写形式编写or

//td[text()[contains(.,'Word1') or contains(.,'Word2') or contains(.,'Word3')]]

如果它没有帮助,您可以使用Union方法:

/td[2][text()[contains(.,'Word1')]] | /td[2][text()[contains(.,'Word2')]] | /td[2][text()[contains(.,'Word3')]]

答案 2 :(得分:1)

是的 - 您只需要单独的contains()来电:

[contains(., 'Word1') OR contains(., 'Word2') OR contains(., 'Word3')]

正如你现在所做的那样,一个布尔值作为第二个参数传递给contains,而不是一个字符串。

答案 3 :(得分:1)

使用 XPath 2.0或3.0 ,您还可以使用:

  • 一个Quantified Expression循环一系列单词并测试是否包含任何单词

    //td[2][text()[some $word in ('Word1', 'Word2', 'Word3') satisfies contains(., $word)]]

  • matches()功能并指定正则表达式中的单词列表:

    //td[2][text()[matches(., 'Word1|Word2|Word3')]]