XPath选择many的第二个元素,除非只有一个存在

时间:2017-06-29 18:21:58

标签: html xpath

我有一个包含三个<input>元素的网页,这些元素都具有相同的name属性。理想情况下,我想选择其中第二个元素,除非有时页面上只有一个元素,我想改为选择该元素。

理想情况下,我想要(伪代码,因为max不存在)

(//input[@name='myname'])[max(1, last()-1)]

我想也许我可以做类似下面的事情,除了它产生所有三个元素

(//input[@name='myname'])[last()-1 or 1]

使用XPath实现此目的的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

也许抓住两个然后只抓住最后一个。

如果有两个或更多,则获得第二个。如果只有一个,它会抓住那个。

((//input[@name='myname'])[position()=1 or position()=2])[last()]