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_Nokogiri - Fatal编程技术网

是否可以使用xpath选择多个选项?

是否可以使用xpath选择多个选项?,xpath,nokogiri,Xpath,Nokogiri,这意味着在选择多个表单中选择第一个和第三个选项。谓词(方括号内的所有内容)指定在结果集中包含特定节点的条件,任何一个元素都不可能同时具有val值1和3。但是,如果将和替换为或,则表达式将匹配满足以下任一条件的任何节点: /html/body/form/select/option[@val='1'或@val='3'] 旁注:如果要根据节点的位置而不是属性值选择节点,可以在谓词中使用position()函数。您的意思是还是 /html/body/form/select/option[@val = '

这意味着在选择多个表单中选择第一个和第三个选项。谓词(方括号内的所有内容)指定在结果集中包含特定节点的条件,任何一个元素都不可能同时具有
val
值1和3。但是,如果将
替换为
,则表达式将匹配满足以下任一条件的任何节点:

/html/body/form/select/option[@val='1'或@val='3']


旁注:如果要根据节点的位置而不是属性值选择节点,可以在谓词中使用
position()
函数。

您的意思是
还是

/html/body/form/select/option[@val = '1' and @val = '3']

这应该选择两个元素。通过使用
您试图选择一个元素,该元素的
val
同时是
1
3
,这两个元素都不起作用。:-)

很清楚,select是指它返回结果中的节点,对吗?不是真的在DOM中选择它吗

无论哪种方式,您都需要以下内容:

/html/body/form/select/option[@val = '1' or @val = '3']


注意
|
的用法,意思是“或”,您不想使用“和”,因为这意味着您希望所有结果都位于位置1和3,这是不可能的。您需要所有位于位置1或3的结果。

似乎您只需要更改逻辑运算符@val不能是1和3
 /html/body/form/select/option[1|3]
 /html/body/form/select/option[position()=1|postion()=3]