我将举一个例子以更好地阐明自己。
示例:
<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]
parentnode
的count()
将那些childnode
元素排序