如何使用xpath选择全局最后一个文本节点?我尝试过这样做,但它为我提供了文档每个上下文中的最后一个节点。
lxml.html.fromstring('1<a>2<b>3</b>4<c>5</c>6</a>').xpath('//text()[last()]')
['1', '3', '5', '6']我可以这样做,但它在时间和空间上效率都很低,特别是在文档变得很大的情况下。
lxml.html.fromstring('1<a>2<b>3</b>4<c>5</c>6</a>').xpath('//text()[last()]')[-1]
'6'我尝试使用索引-1,但这给了我一个空列表。我尝试使用一些相反的轴(这样我就可以用1进行索引),但我无法让它们在全局上下文中工作。
发布于 2012-04-11 09:53:37
使用的
(//text())[last()]这是一个常见问题解答。
解释:
XPath伪运算符//具有比[]运算符更低的优先级(优先级),后者更强地绑定到它之前的节点测试。
正如在Math和每种语言中一样,覆盖默认优先级的方法是使用括号。
https://stackoverflow.com/questions/10098593
复制相似问题