Xslt xpath:如何仅选择最后一个文本节点?
如何使用xpath选择全局最后一个文本节点? 我尝试了这个,但它给出了文档每个上下文中的最后一个节点Xslt xpath:如何仅选择最后一个文本节点?,xslt,xpath,lxml,libxml2,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'] lxml.html.fromstring('123456').xpath('//text()[last()]')) ['1',
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('123456').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'
lxml.html.fromstring('123456').xpath('//text()[last()]')[-1]
'6'
我试图使用-1的索引,但这给了我一个空列表。我尝试使用一些反向轴(以便可以使用1进行索引),但无法使它们在全局环境中工作。使用:
(//text())[last()]
这是一个常见问题
说明:
XPath伪运算符/
的优先级(优先级)低于[]
运算符,后者绑定到它前面的节点测试
正如在数学和每种语言中一样,覆盖默认优先级的方法是使用括号。Linkify常见问题解答,为了获得更大的公正性?确认:
.xpath(“(//text())[last()]”)
->['6']