我在BI Publisher中有如下的XML -
<ROW1>
<TOTAL_RETAIL>10.95</TOTAL_RETAIL>
<TOTAL_TAX> 1.8</TOTAL_TAX>
<TOTAL_SHIPPING>7.95</TOTAL_SHIPPING>
</ROW1>
<ROW1>
不重复。现在据我了解要做SUM
节点我可以使用像sum()
这样的XPath函数<?sum(.//TOTAL_RETAIL)?>
。这将仅对节点TOTAL_RETAIL
的值求和,我想要TOTAL_RETAIL
,TOTAL_TAX
和TOTAL_SHIPPING
的总和。有没有办法可以编写sum
函数来实现这一目标。
注意 - 无法以编程方式处理,即使用变量等,因为它在报告模板中,必须定义为<?sum(...)?>
,这些值将映射到Excel报告模板中的特定单元格。
答案 0 :(得分:8)
尝试
<?sum(.//TOTAL_RETAIL | .//TOTAL_TAX | .//TOTAL_SHIPPING)?>
|
是union运算符,因此传递给sum()
的参数是三个子表达式的并集。
答案 1 :(得分:4)
sum(.//TOTAL_RETAIL | .//TOTAL_TAX | .//TOTAL_SHIPPING)
答案 2 :(得分:3)
您也可以尝试在每个节点上拆分总和,它的工作方式如下:
<?sum(.//TOTAL_RETAIL) + sum(.//TOTAL_TAX) + sum(.//TOTAL_SHIPPING)?>
如果您有NULL值或空节点,请使用此过滤器以确保sum函数始终有效:sum(.//TOTAL_RETAIL[.!='']) + ...etc