我有一个输入XMLXSLT转换,分组和总和
<students>
<student>
<name>John</name>
<marks>100</marks>
</student>
<student>
<name>Arvind</name>
<marks>90</marks>
</student>
<student>
<name>John</name>
<marks>100</marks>
</student>
<student>
<name>Arvind</name>
<marks>80</marks>
</student>
</students>
我想上面的XML被转化成
<students>
<student>
<name>John</name>
<totalMarks>200</marks>
</student>
<student>
<name>Arvind</name>
<totalMarks>170</marks>
</student>
</students>
所以基本上我想组输入XML基于学生名称并获得它们的标记的总和。
在课堂上,我也教基于变量的分组方法,在您创建组时用到n组。当只有一组时,可以使用这种方法,但Muenchian方法更快。 –
嗨... G.肯·霍尔曼非常感谢你的答复。你可以在for-each中解释选择表达式并选择元素的值。 –
user2583865
'sum()'的参数是'key('学生名',名称)/ marks [数字(。)=数字(。)]'这就是说:查找关键表中的所有学生与组的名称元素同名,得到所有''元素子元素,并且只保留那些有效数字。如果你相信标记是正确记录的,那么最后一位可以省略,但如果不是的话,则谓词保护总数免受“非数字”(NaN)的损害。 –