首页 > 解决方案 > 汇总数据可以为空的节点,如果是,设置默认值

问题描述

考虑这个 XML

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

我之前问了一个问题,跳过没有数量的行(需要汇总数据可以为空的节点)。

得到了一个很好的答案

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

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

谢谢

/米

<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>

标签: xslt

解决方案


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

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

推荐阅读