我有一个像这样的XML文件:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<?xml-stylesheet href="class3.xsl" type="text/xsl" ?>
<school>
<student><name>Jack T</name>
<course title="INF8430" note="78" />
<course title="INF1030" note="69" />
<course title="INF1230" note="85" /></student>
<student><name>Marty L</name>
<course title="INF8430" note="95" />
<course title="INF1030" note="82" />
<course title="INF1230" note="77" /></student>
<student><name>Ben L</name>
<course title="INF9430" note="59" />
<course title="INF1030" note="78" />
<course title="INF1230" note="79" /></student>
</school>
在我的XQuery中,我使用它:
{
for $s in distinct-values(doc("class3.xml")//course/@title)
return
<course title="{$s}">
</course>
}
我尝试从每个不同的标题获得平均值。 我正确地得到了标题,但我怎么能计算平均值? 我在课程标签之间尝试了很多东西来找到平均值,有人可以帮助我 感谢
答案 0 :(得分:2)
在你的return语句中添加:
avg(doc("class3.xml")//course[@title=$s]/@note)
答案 1 :(得分:1)
我确信有更好的方法......不确定这是你想要的但是它会帮助你到达那里我希望:)
let $doc :=
<school>
<student><name>Jack T</name>
<course title="INF8430" note="78" />
<course title="INF1030" note="69" />
<course title="INF1230" note="85" /></student>
<student><name>Marty L</name>
<course title="INF8430" note="95" />
<course title="INF1030" note="82" />
<course title="INF1230" note="77" /></student>
<student><name>Ben L</name>
<course title="INF9430" note="59" />
<course title="INF1030" note="78" />
<course title="INF1230" note="79" /></student>
</school>
return
for $s in $doc//student
let $total := sum($s/course/@note) div count($s/course)
return <name>{$s/name}<avg>{$total}</avg></name>