XSLT условный тест с абсолютным значением - PullRequest
1 голос
/ 14 января 2011

Я пытаюсь выяснить, как сделать тест в моем xsl-преобразовании, используя абсолютные значения.Примерно так:

<code><xsl:when test="abs(/root/values/mean) &lt; /root/thresholds/min">

   <xsl:attribute name="style">background-color:red;</xsl:attribute>

</xsl:when>

Возможно ли это.Я пытался использовать шаблоны, но это казалось неправильным путем.Переход на XSLT 2.0 у меня тоже не сработал (полагаю, Firefox 3.6 его не поддерживает).

Есть мысли?

Ответы [ 3 ]

3 голосов
/ 14 января 2011

Как правило, в XPath 1.0 (XSLT 1.0) вы можете найти абсолютное значение числа $vNum со следующим выражением XPath:

$vNum*($vNum > 0) -$vNum*not($vNum > 0)

В XPath 2.0 (XSLT 2.0) используется стандартная функция abs ()

2 голосов
/ 14 января 2011

Абсолют, как в неотрицательных?Определите условную переменную.

<xsl:variable name="abs">
   <xsl:choose>
       <xsl:when test="/root/values/mean &lt; 0><xsl:value-of select="-1 * /root/values/mean" /></xsl:when>
       <xsl:otherwise><xsl:value-of select="/root/values/mean" /></xsl:otherwise>
    </xsl:choose>
</xsl:variable>

<xsl:when test="$abs">
   <xsl:attribute name="style">background-color:red;</xsl:attribute>
</xsl:when> 
1 голос
/ 14 января 2011

Другой способ найти абсолютное значение числа в XPath 1.0 - это

number(translate(string($X), '-', ''))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...