XPath 查找元素中的最后一个文本节点

Vru*_*vet 2 xml xslt xpath xslt-2.0

如何选择 element 中的最后一个文本a

元素可以有子元素。

<a>bla di bla <b>foo bar</b> yes!</a>
Run Code Online (Sandbox Code Playgroud)

应该给我“是的!” 和

<a>bla di bla <b>foo bar</b></a>
Run Code Online (Sandbox Code Playgroud)

应该给我“foo bar”和

<a>bla di bla</a>
Run Code Online (Sandbox Code Playgroud)

应该给我“bla die bla”

Mar*_*nen 5

我会使用//a/descendant::text()[last()],选择三个文本节点

 yes!
foo bar
bla di bla
Run Code Online (Sandbox Code Playgroud)

在样本中

<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>
Run Code Online (Sandbox Code Playgroud)

https://xqueryfiddle.liberty-development.net/nbUY4kn 上使用 XQuery 的在线示例。

建议的路径表达式//a/descendant::text()[last()]适用于 XPath 1 及更高版本。