如何忽略第一个元素并获取其余元素?
<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>
Run Code Online (Sandbox Code Playgroud)
谢谢
t00*_*0ny 91
如果你想忽略"first"元素,那么:
//li[position()>1]
or
(//a)[position()>1]
Run Code Online (Sandbox Code Playgroud)
如果你想要最后一个(就像你的例子似乎暗示):
//li[last()]
or
(//a)[last()]
Run Code Online (Sandbox Code Playgroud)
Mad*_*sen 12
您可以使用position()
跳过"第一个",但根据您感兴趣的元素和上下文,您可能需要稍微改变一下XPATH.
例如,如果你想要解决所有li
元素并获得除第一个之外的所有元素,你可以使用:
//li[position()>1]
Run Code Online (Sandbox Code Playgroud)
并且它将按预期工作,返回li
除第一个之外的所有元素.
但是,如果您想要解决所有a
需要稍微修改XPATH 的元素.在表达式的上下文中,//a[position()>1]
每个a
元素的a position()
值为1,并且last()
将评估为true.所以,它总会返回每一个a
,不会跳过第一个.
您需要包装选择a
括号中的表达式以将它们分组到节点集中,然后在位置上应用谓词过滤器.
(//a)[position()>1]
或者,您也可以使用如下表达式:
//a[preceding::a]
Run Code Online (Sandbox Code Playgroud)
这将找到a
除第一个之外的所有元素(因为在第一个元素a
之前没有).