【发布时间】:2018-02-07 18:42:33
【问题描述】:
我正在尝试计算 XML 文档中的成本和页面元素的总和,如下所示。
鉴于成本和页面都是 OrderAmounts 的子项,我不知道如何完成运行总计。我搜索了其他答案,但只能找到计算兄弟元素运行总数的参考。
XML
<Root>
<Info>
<CustomerName>Clay Allen</CustomerName>
<CustAddr>123 Main St</CustAddr>
<Date>2018-02-07</Date>
</Info>
<Details>
<AdditionalDetails>
<OrderDetails>
<Order>
<OrderNumber>A1</OrderNumber>
<OrderAmounts>
<Cost>100</Cost>
<Pages>1325</Pages>
</OrderAmounts>
</Order>
<Order>
<OrderNumber>A2</OrderNumber>
<OrderAmounts>
<Cost>75</Cost>
<Pages>950</Pages>
</OrderAmounts>
</Order>
</OrderDetails>
</AdditionalDetails>
</Details>
</Root>
我的 XSL
<xsl:for-each select="Root/Details/AdditionalDetails/OrderDetails/Order">
(Cumulative value: <xsl:variable name="temp1" select="sum(preceding-sibling::Order)+OrderAmounts/Cost"/><xsl:value-of select="$temp1"/>)<br/>
(Cumulative value: <xsl:variable name="temp2" select="sum(preceding-sibling::Order)+OrderAmounts/Pages"/><xsl:value-of select="$temp2"/>)
<br/><br/>
</xsl:for-each>
产生输出
100
1325
75
950
期望的输出
175
2275
建议。
【问题讨论】:
-
请(总是!)说出您使用的 XSLT 版本。这样的问题在 2.0 或 3.0 中比在 1.0 中要容易得多,但没有人愿意发现他们浪费时间为错误的版本提供解决方案。
-
谢谢。为了将来参考,这个问题与 XSLT 3.0 有关。