1. Главная
  2. Функции XPath
  3. abs()

abs XPath

Функция abs возвращает модуль (абсолютное значение) числового аргумента.

Синтаксис

XPath 2.0

fn:abs($arg as numeric?) as numeric?

Ввод

Числовое значение.

Вывод

Модуль заданного числового значения.

Описание и примеры

Пример

Короткая таблица стилей, демонстрирующая применение функции abs():

<?xml version="1.0"?>
<!-- abs.xsl -->
<xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xsl:output method="text"/>
    <xsl:template match="/">
        <xsl:text>Here are some tests of the abs() function:</xsl:text>
        <xsl:text> abs(7) = </xsl:text>
        <xsl:value-of select="abs(7)"/>
        <xsl:text> abs(-7) = </xsl:text>
        <xsl:value-of select="abs(-7)"/>
        <xsl:text> abs(0) = </xsl:text>
        <xsl:value-of select="abs(0)"/>
        <xsl:text> abs(-0) = </xsl:text>
        <xsl:value-of select="abs(-0)"/>
        <!-- В процессоре XSLT 2.0 этот пример работать не будет. -->
        <!-- <xsl:value-of select="abs('x')"/> -->
        <xsl:variable name="testSequence" as="xs:integer*" select="1 to 10"/>
        <xsl:text> $testSequence = </xsl:text>
        <xsl:value-of select="$testSequence" separator=", "/>
        <xsl:text> abs(count($testSequence)) = </xsl:text>
        <xsl:value-of select="abs(count($testSequence))"/>
    </xsl:template>
</xsl:stylesheet>

Результат:

Here are some tests of the abs() function:
abs(7) = 7
abs(-7) = 7
abs(0) = 0
abs(-0) = 0
$testSequence = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
abs(count($testSequence)) = 10

В последнем вызове abs() функция count() используется для создания числового значения. Как сказано в комментарии в таблице стилей, любая попытка передачи нечислового значения функции abs() является статической ошибкой. Если хотите, раскомментируйте строку <xsl:value-of select="abs('x')/> и убедитесь в этом сами.