XSL将子节点的总和添加到变量中

时间:2017-12-07 18:25:19

标签: xml xslt sum

<Recipes>
    <Food A="...">
        <Ingredients>
            <Ingredient Salt="...">
                <Qty> 250 </Qty>
                <Type> g </Type>
            </Ingredient>
             .
             .
        </Ingredients>
    </Food>

    <Food B="...">
        <Ingredients>
            <Ingredient Salt="...">
                <Qty> 30 </Qty>
                <Type> g </Type>
            </Ingredient>
             .
             .
        </Ingredients>
    </Food>

    <Food C="...">
        <Ingredients>
            <Ingredient Salt="...">
                <Qty> 25 </Qty>
                <Type> g </Type>
            </Ingredient>
             .
             .
        </Ingredients>
    </Food>
</Recipes>

您好,我有一个类似于上面的xml文件,我试图将不同食物中的盐量加到变量中,所以对于这个例子,结果应该是305.

我尝试了sum()的多条路径,但我无法访问我想要的方式。有可能这样做吗?

这是我的最后一次尝试,但它返回0.

<xsl:variable name="Salt" select="sum(Recipes/*/Ingredients/Ingredient[name()='Salt']/@Qty)"/>

1 个答案:

答案 0 :(得分:0)

这应该有效

<xsl:variable name="Salt" select="sum(/Recipes/*/Ingredients/Ingredient[@Salt]/Qty)" />
相关问题