Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以在xpath查询中使用或吗?要在一个查询中匹配两个不同的属性吗_Xpath - Fatal编程技术网

可以在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的解决方案慢两倍,因为它可能

我想做一个匹配两个独立属性的xpath查询

所以我想匹配
//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']