我的 xml 示例,如下所示。对于每个“零件”节点集,我将成本乘以数量(成本 * 数量)。这在节点集级别上工作得很好。我正在尝试对所有 (Cost * Qty) 求和并将 TOTAL 放在我文档的底部。
我仅限于 xpath 2.0(不能使用 xslt 函数)。这可能吗?
提前谢谢你!
<AddPart_Container displayName="Add Sensor(s)" displayValue="Add Sensor(s)">
<Part displayName="Part (Sensor 02)" displayValue="Part (Sensor 02)">
<PartCategory>Hardware</PartCategory>
<PartName>Wireless Enterprise Vibration Sensor V3 (1 MP per)</PartName>
<PartNumber>PR55-61E</PartNumber>
<Cost>366.95</Cost>
<DirectPrice>492.95</DirectPrice>
<Qty>200</Qty>
</Part>
<Part displayName="Part (Sensor 04)" displayValue="Part (Sensor 04)">
<PartCategory>Hardware</PartCategory>
<PartName>Wireless 3 Channel Current Sensor - 0 to 100 (3 MP per)</PartName>
<PartNumber>PR55-26C</PartNumber>
<Cost>337.94</Cost>
<DirectPrice>492.95</DirectPrice>
<Qty>10</Qty>
</Part>
</AddPart_Container>
下面对每个节点都适用(我正在使用的程序有独特的语法)。现在我只需要对所有节点集求和,因为我正在对这个计算字段求和,所以我真的很挣扎。
<# <Content Select="round((./DirectPrice * ./Qty div 12) * 100) div 100"/> #>
for
表达式 遍历所有 Part
元素并返回每个 Part
的计算结果,生成一系列数值。然后,您可以使用 XPath sum
函数 对该序列中的数字求和。像这样的东西:
sum(
for $part in
//Part
return
round(($part/DirectPrice * $part/Qty div 12) * 100) div 100
)
结果:
8626.62