【发布时间】:2020-08-31 15:45:37
【问题描述】:
我将举一个例子来更好地阐明自己。
例子:
<asdf>
<parentnode id ="1">
<childnode>
...
</childnode>
<childnode>
...
</childnode>
</parentnode>
<parentnode id ="2">
<childnode>
...
</childnode>
<childnode>
...
</childnode>
<childnode>
...
</childnode>
</parentnode>
<parentnode id ="3">
<childnode>
...
</childnode>
</parentnode>
</asdf>
我需要计算所有父节点的所有子节点,并返回给定父节点的子节点的最小数量及其 id。
对于这个例子,解决方案是:
<parentnode id="3" amount="1"/>
我真的不知道从哪里开始。我是否必须在 for 循环中计算不同的元素,或者这也可以使用 Xpath 表达式? 我不确定这是否是正确的方向:
let $a := fn:doc('asdf.xml')/asdf/*
return
for $z in distinct-values($a/name() = childnode )
order by count($z) ascending
return $z)[1]
【问题讨论】: