在lxml中,我正在使用xpath来选择表中的所有tr(具有不同数量的行数),除了包含gibberish的最后两行。

是否有一个模式匹配,排除了最后两行?我正在通过XPath教程看,显然存在“除了”运算符和“最后()”,但似乎无法获得我的代码。

到目前为止,我有这个。我该如何添加到此模式以使其排除最后两行?主要问题是TR的数量不同。

result = doc.xpath("//tr")
.

我想我可以把它变成一个列表,只需删除最后两个元素,但解决方案更容易/优雅?

提前感谢!

有帮助吗?

解决方案

result = doc.xpath("//tr")[0:-2]
.

应该做这个技巧。

其他提示

使用

expressionSelectingTheTable/tr[not(position() > last() -2)]
.

如果生成的CodeTagcode应该用特定的XPath表达式替换,该表达式选择表,其中询问了该问题(例如expressionSelectingTheTable

此单个XPath表达式选择//table[@id='foo']父的所有生成子码代码子,其位置不是最后两个的位置。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top