我有一个包含三个<input>
元素的网页,这些元素都具有相同的name
属性。理想情况下,我想选择其中第二个元素,除非有时页面上只有一个元素,我想改为选择该元素。
理想情况下,我想要(伪代码,因为max
不存在)
(//input[@name='myname'])[max(1, last()-1)]
我想也许我可以做类似下面的事情,除了它产生所有三个元素
(//input[@name='myname'])[last()-1 or 1]
使用XPath实现此目的的最佳方法是什么?
答案 0 :(得分:2)
也许抓住两个然后只抓住最后一个。
如果有两个或更多,则获得第二个。如果只有一个,它会抓住那个。
((//input[@name='myname'])[position()=1 or position()=2])[last()]