就像那个标题
<test>
<num>1 5 7</num>
<num>4-2</num>
.....
</test>如何获得每个num标签的和
我尝试过将字符串从{15 7}更改为{1+5+7},然后使用求和或数字函数,但没有工作。
期望得到
<test>
<num>13</num>
<num>2</num>
.....
</test>或其他格式
发布于 2022-10-26 17:07:49
马丁·霍宁和麦德斯·汉森的回答缺少了实际的查询和结果返回部分。为了提高可读性,我还添加了一些带有有用变量名的额外行。
let $data :=
<test>
<num>1 5 7</num>
<num>4-2</num>
</test>
return
<result>{
for $num in $data/num
let $normalized := replace($num/text(), '-', ' -')
let $numbers := tokenize($normalized, ' ') ! number(.)
return
<sum>{sum($numbers)}</sum>
}</result>发布于 2022-10-25 20:05:32
sum(tokenize(<num>1 5 7</num>)!xs:decimal(.))给了13。尚不清楚示例<num>4-2</num>和sum (?) 2是如何匹配的。
https://stackoverflow.com/questions/74198766
复制相似问题