嗨,有人可以帮助我,我不知道为什么会这样做
“'/'的第一个操作数的必需项类型是node();提供的值 项目类型为xs:anyAtmonicType“。
我正在尝试按年度对网站进行分组。
<publications>
{
for $x in distinct-values(//www)
return
<year-Pub>{for $y in //www where $x/year = $y/year
return <year>{$y/*}</year>}</year-Pub>
}
</publications>
答案 0 :(得分:2)
我怀疑你想要
<publications>
{
for $x in distinct-values(//www/year)
return
<year-Pub>{for $y in //www[year = $x]
return <year>{$y/*}</year>}</year-Pub>
}
</publications>
或者在XQuery 3.0中查看“group by”。
答案 1 :(得分:1)
distinct-values(...)
返回一系列xs:anyAtomicType
值,例如。字符串或数字,但从不XML节点(node()
)。在一系列XML节点(//www
返回)上运行时,会为每个节点隐式调用fn:data(...)
以将其转换为原子值。
在第for $y in //www where $x/year = $y/year
行中,您希望执行从$x
开始的轴步骤,此后无法执行此步骤。
由于您没有提供任何输入或描述您想要实现的目标,我无法帮助您使用经过验证的工作解决方案,而是作为处理不同节点的简要草图:
distinct-values(//www/year
代替。)