除了最后两个tr的情况外,我如何选择所有TR
题
在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']
父的所有生成子码代码子,其位置不是最后两个的位置。
不隶属于 StackOverflow