如何获取最后一个<a>元素之前的元素的xpath

9 投票
2 回答
9214 浏览
提问于 2025-04-18 01:44

我有这个HTML代码

<a class=pagination_klass></a>
<a class=pagination_klass></a>
<a class=pagination_klass></a>
<a class=pagination_klass></a>
<a class=pagination_klass>HERE</a>
<a class=pagination_klass></a>

我想获取倒数第二个 <a> 标签

我试过这个方法:

.//a[@class='pagination_klass' and position() = (last()-1)]/@href

但是我得到了空结果。

请帮帮我。

注意

我还需要根据类名进行比较

2 个回答

4

你的这个表达式

.//a[@class='pagination_klass' and position() = (last()-1)]/@href

会选择所有链接中倒数第二个的链接,但前提是它的类名必须是 pagination_klass。如果你想找到所有 pagination_klass 链接中的倒数第二个,可以试试这个:

.//a[@class='pagination_klass'][last()-1]/@href
15

你好,你几乎说对了。我把XPath开头的.选择器(当前节点选择器)去掉了,然后我在这个XPath测试工具上测试了一下。对我来说,它运行得很好。

//a[@class='pagination_klass' and position() = (last()-1)]/@href

对于

<html>
...
<a class='pagination_klass'></a>
<a class='pagination_klass'></a>
<a class='pagination_klass'></a>
<a class='pagination_klass'></a>
<a class='pagination_klass' href='LINK'>HERE</a>
<a class='pagination_klass'></a>
..
</html>

结果会是属性节点 href='LINK'。

撰写回答