乘以Xquery中序列中的所有值

时间:2013-11-20 14:10:43

标签: xml xpath xquery

我有一个xml文档,其结构如下:

<class>
    <element>1</element>
    <element>2</element>
    <element>3</element>
  </class>
  <class>
    <element>10</element>
    <element>82</element>
    <element>31</element>
  </class>
...

我想返回乘以每个类的所有元素的结果。我试图创建一个计数器,将每个元素乘以计数器返回它,但我无法让它工作。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

您需要声明自己的功能,例如:

declare function local:multiplytail($seq, $i, $res) {
    if ($i le 0) then $res
    else local:multiplytail($seq, $i - 1, $res*number($seq[$i]))
};
declare function local:multiply($seq) {
    local:multiplytail($seq, count($seq), 1)
};

//class/local:multiply(element)