所以我有一个像这样的XML文件:
<data>
<person name="john" lastname="doe" >
<grades>
<math>90</math>
<biology>23</biology>
</grades>
</person>
.
.
我知道如何查询这个以获得所有成绩的平均值,但我想取平均值并将其放在与原始xml文件的成绩完全相同的位置,替换成绩。所以我会有类似的东西:
<data>
<person name="john" lastname="doe" >
<average>56.5</average>
</person>
.
.
编辑:我实际上找到了一种在内部获得所需结果的方法,感谢对此问题的建议,但它可能在将来帮助我。
答案 0 :(得分:2)
正如评论中所提到的,XQuery无法从字面上返回修改后的XML。您将不得不重新创建XML,并且考虑到要开始的复杂XML文档,这会变得过于复杂。
对于这个相当简单的XML结构,您可以使用以下XQuery返回预期的XML:
<data>
{
for $p in /data/person
let $g := $p/grades/*
return
<person>
{
$p/@*,
<average>{sum($g) div count($g)}</average>
}
</person>
}
</data>
<强> xpathtester demo
强>