首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XQuery -无界结构中元素值的值之和

XQuery -无界结构中元素值的值之和
EN

Stack Overflow用户
提问于 2017-09-02 12:37:03
回答 1查看 92关注 0票数 0

我试图从下面的结构中获得特定字段的值的总和,但它看起来不起作用,因为我得到了预期的错误0或一个值,但得到了两个或更多。

代码语言:javascript
复制
 <v4:CalculateResponse xmlns:v4="http://services.xx.net/mm/va">
       <v4:CalculateResponseSizeType>
          <v4:CalculateCCs>
             <v4:Container>
                <v4:GrossBookedWeight>31.6</v4:GrossBookedWeight>
                <v4:NetPredictedWeight>50</v4:NetPredictedWeight>
                <v4:GrossPredictedWeight>53.6</v4:GrossPredictedWeight>
                <v4:TypeOfWeightUsed>P</v4:TypeOfWeightUsed>
             </v4:Container>
             <v4:Container>
                <v4:GrossBookedWeight>31.6</v4:GrossBookedWeight>
                <v4:NetPredictedWeight>50</v4:NetPredictedWeight>
                <v4:GrossPredictedWeight>53.6</v4:GrossPredictedWeight>
                <v4:TypeOfWeightUsed>B</v4:TypeOfWeightUsed>
             </v4:Container>
             <v4:Container>
                <v4:GrossBookedWeight>31.6</v4:GrossBookedWeight>
                <v4:NetPredictedWeight>50</v4:NetPredictedWeight>
                <v4:GrossPredictedWeight>53.6</v4:GrossPredictedWeight>
                <v4:TypeOfWeightUsed>B</v4:TypeOfWeightUsed>
             </v4:Container>
             <v4:Container>
                <v4:GrossBookedWeight>31.6</v4:GrossBookedWeight>
                <v4:NetPredictedWeight>50</v4:NetPredictedWeight>
                <v4:GrossPredictedWeight>53.6</v4:GrossPredictedWeight>
                <v4:TypeOfWeightUsed>P</v4:TypeOfWeightUsed>
             </v4:Container>
      </v4:CalculateCCs>
   </v4:CalculateResponseSizeType>
   <v4:Status>P</v4:Status>
   <v4:StatusCode>1000</v4:StatusCode>
</v4:CalculateResponse>

我尝试使用下面的函数对这些值求和,但看起来它只有一个值。

代码语言:javascript
复制
<Weight>
        {
        sum(
            data($calculateResponse1/*:CalculateResponseSizeType/*:CalculateCCs/*:Container[data(*:TypeOfWeightUsed) = "B"]/*:GrossBookedWeight), 
            data($calculateResponse1/*:CalculateResponseSizeType/*:CalculateCCs/*:Container[data(*:TypeOfWeightUsed) = "P"]/*:GrossPredictedWeight)
        )

    }
</Weight>

这里的计算很简单,假设如果TypeOfWeightUsed =0,那么我想使用GrossPredictedWeight元素值,或者如果TypeOfWeightUsed =B,那么我想使用GrossBookedWeight。

我们可以在一个结构中有多个容器。

请建议上面的syntex有什么问题。

EN

回答 1

Stack Overflow用户

发布于 2017-09-03 07:18:15

当sum()函数有两个参数时,第二个参数提供一个值,作为第一个参数为空序列时的结果。(这是一种笨拙的处理方式,因为如果没有静态类型检查,sum()函数就不能区分一个空的双精度序列和一个空的持续时间序列,而且在对持续时间求和时,您并不真正想要一个整数为零的结果)。

您已经使用两个参数调用了函数,但我认为您希望将这两个序列视为要求和的输入。只需添加另一对括号,使其成为单个参数:将sum(x, y)替换为sum((x, y))

出现错误的原因是,如果提供了第二个参数,则它必须是单例数值,而不是序列。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46010494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档