如何选择元素a
中的最后一个文本?
元素可以包含子元素。
<a>bla di bla <b>foo bar</b> yes!</a>
应该给我“是的!”和
<a>bla di bla <b>foo bar</b></a>
应该给我“foo bar”和
<a>bla di bla</a>
应该给我“bla die bla”
我会使用//a/descendant::text()[last()]
,它选择三个文本节点
yes!
foo bar
bla di bla
在样本中
<body>
<a>bla di bla <b>foo bar</b> yes!</a>
<a>bla di bla <b>foo bar</b></a>
<a>bla di bla</a>
</body>
在https://xqueryfiddle.liberty-development.net/nbUY4kn上使用XQuery进行在线示例。
建议的路径表达式//a/descendant::text()[last()]
适用于XPath 1及更高版本。
这个XPath,
(/a//text())[last()]
将选择a
的文本节点后代中的最后一个文本节点。
更新:OP已指出文档中可能有多个a
元素,并希望为每个a
元素选择最后一个文本节点后代。
这个XPath 2.0表达式,
for $a in //a
return ($a//text())[last()]
将满足更新的要求。
使用此Xpath:
//*/text()[last()]