如何忽略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
元素(因为第一个元素之前没有)。