如何从XML中的2个字段求和?

时间:2013-06-14 05:36:25

标签: xml xpath bi-publisher

这是我的XML

<ticket><sold>0</sold><price>7.00</price></ticket>
<ticket><sold>1</sold><price>7.00</price></ticket>
<ticket><sold>1</sold><price>7.00</price></ticket>

我想总计销售价格,在这种情况下它将是14.00美元,因为第一个不卖任何票

标签只有2个值(1或0)

我想到的最简单的方法是为每张票销售多个价格,然后总结。

我按下面分组是我的代码,但我得到了0

0<?sum(current-group()/sold * current-group()/price)?>
你知道为什么吗?如果你有一个更简单的方法,请告诉我

谢谢

2 个答案:

答案 0 :(得分:1)

因为从你的尝试(sum(current-group()/sold * current-group()/price))我认为你正在寻找卖出和价格相乘的总和。使用xpath 2.0,您可以尝试:

sum(//ticket[sold!=0]/(price * sold))

答案 1 :(得分:0)

如果您知道<sold>的值只是0或1,那么您可以这样做:

sum(//ticket[sold!=0]/price[.>0])

最后一次检查([.>0])将确保它们是数字节点,以确保它将正确返回。