我试图在 XSL v1.0 中分别总结正值和负值。
我有这样的 XML:
<Billing_Statements>
<Statement_Details>
<Invoice_Details>
<Meter_Details>
<Consumption>XX</Consumption>
</Meter_Details>
<Meter_Details>
<Consumption>XX</Consumption>
</Meter_Details>
</Invoice_Details>
<Invoice_Details>
<Meter_Details>
<Consumption>XX</Consumption>
</Meter_Details>
<Meter_Details>
<Consumption>XX</Consumption>
</Meter_Details>
</Invoice_Details>
</Statement_Details>
</Billing_Statements>
其中 XX 可以是正值或负值。
我需要首先输出每个 Statement_Details 的所有 Invoice_Detail 节点的正值总和,然后输出负值总和。
目前我已经尝试过:
<xsl:value-of select="sum(Invoice_Details/Meter_Details[Consumption < 0])" />
以及这个的许多变体,无论如何它们都会返回一个总和0
。
从 Meter_Details 节点收集所有其他信息时,我的 for-each 部分可以完美地工作,如下所示:
<xsl:for-each select="Invoice_Details/Meter_Details[Consumption < 0]">
并且只选择具有负值或正值的节点。为什么这对 sum() 不起作用?
我当然在这里与 XSL 作斗争,并希望能得到任何帮助。