Xquery 1.0 - 对具有子元素的元素进行平均
Xquery 1.0 - average over elements with subelements
所以我有一个 XML 文件,其中包含带有数字的元素,以及一些带有数字的子元素。类似于:
<data>
<points>
<score>80</score>
<score>90</score>
<score>10</score>
<score>13</score>
</points>
<favor>50</favor>
<ranked>
<rank>50</rank>
<rank>10</rank>
</ranked>
</data>
我想计算所有这些具有数字(包括子元素)的元素的平均值。所以,我想要一个可以产生的查询:
(80+90+10+13+50+50+10) / 7 = 43.285714286
您可以使用表达式 //*[not(*)]
到 select 叶元素 (没有子元素的元素),在 XML 文件:
let $elements := //*[not(*)]
return sum($elements) div count($elements)
所以我有一个 XML 文件,其中包含带有数字的元素,以及一些带有数字的子元素。类似于:
<data>
<points>
<score>80</score>
<score>90</score>
<score>10</score>
<score>13</score>
</points>
<favor>50</favor>
<ranked>
<rank>50</rank>
<rank>10</rank>
</ranked>
</data>
我想计算所有这些具有数字(包括子元素)的元素的平均值。所以,我想要一个可以产生的查询:
(80+90+10+13+50+50+10) / 7 = 43.285714286
您可以使用表达式 //*[not(*)]
到 select 叶元素 (没有子元素的元素),在 XML 文件:
let $elements := //*[not(*)]
return sum($elements) div count($elements)