XSL - 元素值的总和

时间:2016-06-12 15:05:02

标签: xml xslt

我有一个XML文件:

    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <File>
        <Cars>
            <Car>
                <Color>Blue</Color>
                <Year>1988</Year>
                <Quantity>150</Quantity>
            </Car>
            <Car>
                <Color>Green</Color>
                <Year>1989</Year>
                <Quantity>200</Quantity>
            </Car>
        </Cars>
    </File>

一个XSL文件:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes" encoding="utf-8" media-type="text/xml"/>

    <xsl:template match="File">
        <File>

            <vehicles>
                <xsl:for-each select="Cars/Car">
                    <vehicle>
                        <vehicleColor>
                            <xsl:value-of select="Color"/>
                        </vehicleColor>
                        <vehicleYear>
                            <xsl:value-of select="Year"/>
                        </vehicleYear>
                    </vehicle>
                </xsl:for-each>
            </vehicles>

            <TotalQuantity>
                    <xsl:value-of select="sum()"/> ///// Sum of quantity of all car (<Quantity>)
            </TotalQuantity>
        </File>
    </xsl:template>

</xsl:stylesheet>

我想要计算每辆车的所有数量的总和,并在元素TotalQuantity中显示结果。什么放在sum()方法?

我只使用XSL 1.0。我使用XML类c#

转换XslCompiledTransform

1 个答案:

答案 0 :(得分:0)

由于您当前的节点为File,您需要:

sum(Cars/Car/Quantity)

当然。