可以用xpath选择多个选项吗?

时间:2009-10-10 20:23:40

标签: xpath nokogiri

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

这意味着选择多选形式的第一个和第三个选项?

3 个答案:

答案 0 :(得分:4)

您的意思是or吗?

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

那应该选择两个元素。使用and,您尝试选择val同时为13的元素,但这样做无效。 : - )

答案 1 :(得分:1)

要清楚,通过选择你的意思是它返回结果中的那些节点,对吧?实际上并没有在DOM中选择它?

无论哪种方式,您想要的是以下内容:

 /html/body/form/select/option[1|3]

 /html/body/form/select/option[position()=1|postion()=3]

请注意使用|含义“或”,您不想使用“和”,因为这意味着您希望在位置1和位置3中的所有结果,这是不可能的。您希望所有结果都在 位置1或3。

答案 2 :(得分:0)

几乎。谓词(方括号内的所有内容)指定在结果集中包含特定节点的条件,并且任何一个元素都不可能具有{<1}}值1 3 at同一时间。但是,如果将val替换为and,则表达式将匹配符合任一条件的任何节点:

or

附注:如果要根据位置而不是属性值选择节点,可以在谓词中使用/html/body/form/select/option[@val = '1' or @val = '3']函数。