如何选择除了最后两个tr之外的所有tr?
在lxml中,我正在使用xpath来选择一个表格中的所有
有没有什么方法可以匹配到所有行,但不包括最后两行呢?我查了一些xpath的教程,发现有一个“except”操作符,还有一个“last()”函数,但我就是搞不定我的代码。
到目前为止,我有这个代码。我应该在这个模式中添加什么,才能排除最后两行呢?主要的问题是
result = doc.xpath("//tr")
我想我可以把这些行变成一个列表,然后直接去掉最后两个元素,但有没有更简单或者更优雅的解决办法呢?
提前谢谢大家!
2 个回答
9
使用方法:
expressionSelectingTheTable/tr[not(position() > last() -2)]
这里的 expressionSelectingTheTable
需要替换成一个具体的 XPath 表达式,用来选择你想要的表格,比如 //table[@id='foo']
。
这个 XPath 表达式会选择所有属于这个 table
的 tr
子元素,但不包括最后两个。
2
result = doc.xpath("//tr")[0:-2]
应该能解决问题。