美好的一天,
我有一个我正在组装的XSLT模板,如下所示:
<xsl:for-each select="CarParts/Items">
<div class="columns"><xsl:value-of select="Quantity"/></div>
<div class="columns"><xsl:value-of select="Amount"/></div>
<div class="columns">[SUBTOTAL]</div><br />
</xsl:for-each>
我知道我可以像这样定义一个XSLT变量:
<xsl:variable name="totalAmount" select="sum(CarParts/Items/Amount)" />
但是我希望我的XSLT变量为[SUBTOTAL],它等于每个选择循环的中的Quantity * Amount 。这可能吗?如果这是SQL,那么这将等同于计算列。
有什么建议吗?
TIA,
COSON
答案 0 :(得分:0)
您要做的是将值转换为数字,然后您可以根据需要将其相乘:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<results>
<xsl:for-each select="CarParts/Items">
<Item id="{position()}">
<q><xsl:value-of select="Quantity"/></q>
<a><xsl:value-of select="Amount"/></a>
<st><xsl:value-of select="number(Quantity)*number(Amount)"/></st>
</Item>
</xsl:for-each>
</results>
</xsl:template>
</xsl:stylesheet>
由于没有提供输入/ CSS,我稍微改变了格式,但你应该看看我的目的是什么。在我的
示例输入上运行它<CarParts>
<Items>
<Quantity>1</Quantity>
<Amount>100.00</Amount>
</Items>
<Items>
<Quantity>2</Quantity>
<Amount>25.00</Amount>
</Items>
<Items>
<Quantity>3</Quantity>
<Amount>6</Amount>
</Items>
</CarParts>
我得到
的结果<?xml version="1.0" encoding="utf-8"?>
<results>
<Item id="1">
<q>1</q>
<a>100.00</a>
<st>100</st>
</Item>
<Item id="2">
<q>2</q>
<a>25.00</a>
<st>50</st>
</Item>
<Item id="3">
<q>3</q>
<a>6</a>
<st>18</st>
</Item>
</results>