如何忽略xpath中的第一个元素

我怎样才能忽略第一个元素,并得到其余的元素?

<ul> <li><a href="#">some link</a></li> <li><a href="#">some link 2</a></li> <li><a href="#">link i want to find</a></li> </ul> 

谢谢

如果你想忽略“第一个”元素,那么:

 //li[position()>1] or (//a)[position()>1] 

如果你只想要最后一个(就像你的例子似乎build议):

 //li[last()] or (//a)[last()] 

您可以使用position()跳过“第一个”,但取决于您感兴趣的元素以及上下文是什么,您可能需要XPATH的细微变化。

例如,如果你想解决所有的li元素,并获得除了第一个以外的所有元素,你可以使用:

 //li[position()>1] 

它会按预期工作,返回除了第一个元素之外的所有元素。

但是,如果您想要解决所有这些元素,则需要稍微修改XPATH。 在expression式//a[position()>1]的上下文中, a元素的每一个将具有1的position() ,并且last()将计算为真。 所以,它总是会返回每a ,而不会跳过第一个。

您需要将select括号中的a的expression式包装在一个节点集中,然后将谓词filter应用于位置。

(//a)[position()>1]

另外,你也可以使用这样的expression式:

 //a[preceding::a] 

除了第一个元素之外,它会find所有a元素(因为第一个元素之前没有)。