【问题标题】:How to get absolute value in xslt-1.0如何在 xslt-1.0 中获取绝对值
【发布时间】:2021-10-30 05:26:54
【问题描述】:

有没有一种方法可以获取 xslt-1.0 中数字的绝对值? abs() 函数有效,但在 xslt-2.0 中。

但我需要一种相同的 abs() 功能,但适用于 xslt-1.0

例如 => 输入 -1.5,预期输出 1.5

任何建议将不胜感激。

<xsl:value-of select="concat('-', abs(salesPrice/ns2:BelopFelt))"/>

可能会替换 abs(salesPrice/ns2:BelopFelt)

干杯

【问题讨论】:

    标签: xml xslt-1.0


    【解决方案1】:

    你可以使用:

    translate($input, '-', '')
    

    或者,如果您愿意:

    (2*($input > 0) - 1)*$input
    

    请注意,某些 XSLT 1.0 处理器支持EXSLT math:abs() extension function

    【讨论】:

    • 不幸的是,数学没有运气:abs()。不过翻译没问题。它返回一个字符串。那么有什么办法可以将它转换回双精度可能是
    • 可能的东西在这种情况下提供帮助,因为我需要计算后的差异并连接减号
    • 在 XSLT 1.0 中,数据类型被隐式转换。例如:&lt;xsl:value-of select="translate(-5, '-', '') + 3" /&gt; 返回“5”。 (并且没有 double 数据类型。)此外,无需连接减号即可将值转换为负数:只需使用 -$yourValue
    • 你是对的。这解决了这个问题。非常感谢您的帮助。真的很感激
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-16
    • 2011-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多