使正数为正数 - XSLT

时间:2013-01-31 11:05:50

标签: xslt

我想知道是否有一种方法可以产生负值,积极的?这是我的xslt文档的片段:

<NumberOfLinesAtRate>
    <xsl:value-of select="number(/xsales:Qty)" />
</NumberOfLinesAtRate>

问题是,在我的原始XML文档中,有时这个Qty值可能是负数,-1,-2等。有没有办法让我在转型文件中始终保持积极态度?

2 个答案:

答案 0 :(得分:3)

如果您使用的是XSLT1.0,则可以使用此公式(为简洁起见,我省略了命名空间)

<xsl:value-of select="Qty * (Qty >= 0) - Qty * not(Qty >= 0)" />

在XSLT2.0中,您可以使用专用的 abs 运算符

<xsl:value-of select="abs(Qty)" />

答案 1 :(得分:2)

这是一种相当简洁的方法:

<xsl:value-of select="Qty * (1 - 2 * (Qty < 0))" />