汇总数据可以为空的节点,如果是,则设置默认值

时间:2019-02-14 08:10:41

标签: xslt

考虑此XML

我想对“数量”中的所有值求和,对于那些缺少值的行,我想使用默认值1,00

我以前问过一个问题,跳过没有数量的行 (Need to summarize nodes where data can be empty)。

得到了一个很好的答案

sum(/Top/Lines/Line[string(@Quantity)]/number(translate(@Quantity, ',', '.')))

如何调整上面的代码以适应我的新要求?

谢谢

/ M

<Top>
 <Lines>
   <Line ID="1" Quantity="1,00" />
   <Line ID="2" Quantity="11,00" />
   <Line ID="3" Quantity="" />
   <Line ID="4" Quantity="" />
   <Line ID="5" Quantity="10,00" />
 </Lines>
</Top>

1 个答案:

答案 0 :(得分:0)

假设您仍在使用XPath / XSLT 2.0,则可以:

sum(/Top/Lines/Line/(if (string(@Quantity)) then number(translate(@Quantity, ',', '.')) else 1))