如何将祖先元素下的所有后代文本节点检索为单个字符串?

时间:2017-11-28 23:40:43

标签: xml xpath xquery

我有一组xml文件,文本字符串由元素包围,然后由其他元素细分。例如,

<a>rhino<b>c<c>er</c></b>os</a>

<a>包含一个单词,该单词中的字符集因各种原因而被标记。但是,我希望能够编写一个检索整个单词的查询,即<a>中没有空格的文本字符串,或者根本没有任何跟踪元素来自后代元素的跟踪(在示例中,结果应该是“犀牛”)。

我该怎么做?我已经研究了多种检索后代文本节点的方法,但这些方法最终都会导致某些所需的单词被省略,或者最好(“// w / descendant-or-self :: * / text()”),正在检索的文本节点,但作为不同的搜索结果

我仍然是xml的所有东西的初学者,所以如果我问一些非常基本的东西,请道歉。我很乐意接受阅读建议,以代替直截了当的答案。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您有XPath 2.0,请使用

string-join(//text(), '')
XML上的

<a>rhino<b>c<c>er</c></b>os</a>

它选择所有文本节点并连接它们不带空格。

https://www.freeformatter.com/xpath-tester.html

上试用