我需要一个源自节点'a'的XPath查询,以返回一些连续跟随'b'节点和一些连续跟随'c'节点的节点。所以在这个片段中 -
<a />
<b />
<b />
<c />
<d />
<e />
<a />
<b />
<b />
<b />
<b />
<c />
会是 -
<b />
<b />
<c />
如果我针对第一个“a”节点和
运行它<b />
<b />
<b />
<b />
<c />
如果我跑到第二个。
订购事项,我找不到不涉及合并单独表达式的解决方案。
答案 0 :(得分:0)
对此最好的选择可能是递归函数,如
declare function local:successors($n as node()) as node()* {
if ($n/following-sibling::*[1][self::b|self::c])
then ($n, local-successors($n/following-sibling::*[1])
else $n
};
local:successors($a)
假设你想要XQuery作为你的标题,而不是像问题正文中那样的XPath。