xslt - 汇总数据可以为空的节点,如果是,设置默认值
问题描述
考虑这个 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>
解决方案
假设您仍在使用 XPath/XSLT 2.0,您可以这样:
sum(/Top/Lines/Line/(if (string(@Quantity)) then number(translate(@Quantity, ',', '.')) else 1))
推荐阅读
- elasticsearch - 如何对其他字段中存在的字段进行排序
- laravel - 拉拉维尔。迁移。添加字段
- swift - 在 Swift 中使用 DateFormatter 解析 yyyy:MM:dd:hh:mm:ss
- angular - 如何在我的系统中安装两个版本的 Angular
- regex - 使用正则表达式在指定范围内选择文件
- ionic-framework - 按钮比 Ionic 3 中的表单输入长
- r - 使用 R 更改矩阵中具有 0 和 1 信息的数据框
- javascript - 无法在 POST 请求中获取表单数据
- amazon-web-services - 如何在 Amazon Glue 中使用自定义 Pyspark 读取 netCDF 数据?
- sql - 如何从表中选择用户名有多个userId