我有一个奇怪的一次性,我需要对xpath进行处理,我什至不知道是否可能。到目前为止,我还没有找到办法。

<things>
<stuff>here are some things <yep>blue</yep> and here are some more things</stuff>
</things>


基本上,我希望能够获取“材料”及其所有子级的文本,就像它们也是文本一样。例如,我想得到这个:

here are some things <yep>blue</yep> and here are some more things

最佳答案

您可以使用以下XPath-2.0表达式实现此目的:

for $p in /things/stuff/node() return if ($p instance of element()) then concat('&lt;',$p/name(),'&gt;',$p,'&lt;/',$p/name(),'&gt;') else $p


但这不是递归解决方案,因此它仅适用于元素的第一级。

关于xpath - 是否可以获取节点名称为文本的子节点?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57277400/

10-11 23:37