重构Xpath:同一父级下的多个表达式

时间:2013-11-05 07:56:52

标签: javascript xpath

我有一个Xpath表达式如下:

//*[@id="my_element"]/table//select|//*[@id="my_element"]/table//input[@type!="hidden"]|//*[@id="my_element"]/table//textarea

如您所见,我想在同一个父select

中选择三种不同类型的元素input[@type!="hidden"]textarea//*[@id="my_element"]/table

有没有更简洁的方法来写这个?我想的是:

//*[@id="my_element"]/table//(select|input[@type!="hidden"]|textarea)

但到目前为止,我的研究还没有任何结果。我尝试使用(descendant::select|descendant::input)(descendant::select|input)进行同样的操作,但看起来它们不起作用。

1 个答案:

答案 0 :(得分:0)

您的“简洁”表单是一个有效的XPath 2.0表达式。所以答案是,使用XPath 2.0。