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

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

4

3 回答 3

4

你的意思是or

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

那应该选择这两个元素。通过使用and,您试图选择一个val既是1又是 的元素3,这是行不通的。:-)

于 2009-10-10T20:36:16.090 回答
1

需要明确的是,选择意味着它会在结果中返回这些节点,对吗?实际上没有在 DOM 中选择它?

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

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

或者

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

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

于 2009-10-10T20:42:50.570 回答
0

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

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

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

于 2009-10-10T20:35:59.460 回答