Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xslt xpath:如何仅选择最后一个文本节点?_Xslt_Xpath_Lxml_Libxml2 - Fatal编程技术网

Xslt 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',

如何使用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', '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']