可以在xpath查询中使用或吗?要在一个查询中匹配两个不同的属性吗
我想做一个匹配两个独立属性的xpath查询 所以我想匹配可以在xpath查询中使用或吗?要在一个查询中匹配两个不同的属性吗,xpath,Xpath,我想做一个匹配两个独立属性的xpath查询 所以我想匹配//div[@class='foo']/或//div[@class='bar']/ 我该怎么做?//div[@class='foo']|//div[@class='bar']+1回答得好。另外,这是简短的://div[@class[.='foo'或.='bar']FYI,对于那些记不起各种xpath构造语法的人,mulberrytech.com上有一张一页的快速参考卡。非常方便。在找到它。这可能比@Matthew的解决方案慢两倍,因为它可能
//div[@class='foo']/
或//div[@class='bar']/
我该怎么做?
//div[@class='foo']|//div[@class='bar']
+1回答得好。另外,这是简短的://div[@class[.='foo'或.='bar']
FYI,对于那些记不起各种xpath构造语法的人,mulberrytech.com上有一张一页的快速参考卡。非常方便。在找到它。这可能比@Matthew的解决方案慢两倍,因为它可能需要遍历两次完整的树。@Dimitre谢谢。我刚刚将OR翻译成|
,但我认为Matthew的解决方案更好。将我的答案留在那里,以获取或语法。@styu:|
与或无关|
是XPath中的并集运算符,非智能XPath引擎将在执行并集运算之前首先计算其两个操作数——这需要对整个文档树进行两次单独的遍历。@Dimitre逻辑或运算符表示集合的并集,但感谢您的澄清。@styu:或
是一个布尔运算符,而不是集合运算符。这些是非常不同的。这是一个有效的表达式:a=2或a>5
。这不是:a=2 | a>5
。后者(正确)会导致语法错误。一定要知道集合运算和布尔运算是不同的。
//div[@class='foo' or @class='bar']