buk*_*zor 4 xslt xpath lxml libxml2
如何使用xpath选择全局最后一个文本节点?我试过这个,但它给了我文档每个上下文中的最后一个节点.
lxml.html.fromstring('1<a>2<b>3</b>4<c>5</c>6</a>').xpath('//text()[last()]')
['1', '3', '5', '6']
Run Code Online (Sandbox Code Playgroud)
我可以做到这一点,但它在时间和空间上都是低效的,特别是当文档变大时.
lxml.html.fromstring('1<a>2<b>3</b>4<c>5</c>6</a>').xpath('//text()[last()]')[-1]
'6'
Run Code Online (Sandbox Code Playgroud)
我试图使用-1的索引,但这给了我一个空列表.我试图使用一些反向轴(这样我可以用1索引),但我无法让它们在全局上下文中工作.
Dim*_*hev 11
用途:
(//text())[last()]
Run Code Online (Sandbox Code Playgroud)
这是一个FAQ.
说明:
XPath伪运算符//的优先级(优先级)低于[]运算符,后者与之前的节点测试绑定得更强.
在Math和每种语言中,覆盖默认优先级的方法是使用括号.