如何忽略第一个元素并获取其余元素?
<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之前没有).
| 归档时间: |
|
| 查看次数: |
27219 次 |
| 最近记录: |