1

我想知道是否有办法使负值变为正值?这是我的 xslt 文档的片段:

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

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

4

2 回答 2

3

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

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

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

<xsl:value-of select="abs(Qty)" />
于 2013-01-31T11:41:51.047 回答
2

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

<xsl:value-of select="Qty * (1 - 2 * (Qty < 0))" />
于 2013-01-31T11:45:03.940 回答