Перейти к содержанию

string()

Функция string преобразует свой аргумент к строковому типу явным образом. Если аргумент опущен, функции передается множество узлов, состоящее из единственного контекстного узла.

Синтаксис

XPath 1.0

string string( object? )

XPath 2.0

fn:string() as xs:string
fn:string($arg as item()?) as xs:string

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

Правила приведения к строке

Напомним вкратце правила приведения других типов к строке.

Булевые значения преобразуются в строку следующим образом:

  • "истина" (true) преобразуется в строку "true";
  • "ложь" (false) преобразуется в строку "false".

Числа преобразуются к строковому виду следующим образом:

  • не-число (NaN) преобразуется в строку "NaN";
  • положительный нуль преобразуется в строку "0";
  • отрицательный нуль преобразуется в строку "0";
  • положительная бесконечность преобразуется в строку "Infinity";
  • отрицательная бесконечность преобразуется в строку "-Infinity";
  • положительные целые преобразуются в свое десятичное представление без ведущих нулей и без точки ("."), отделяющей дробную часть от целой;
  • отрицательные целые преобразуются так же, как и положительные, но с начальным знаком "минус" ("-");
  • остальные числа преобразуются в десятичное представление с использованием точки ("."), отделяющей целую часть от дробной части; целая часть не содержит ведущих нулей (кроме случая с числами в интервале (-1;1)), дробная часть содержит столько цифр, сколько требуется для точного представления числа.

Множество узлов преобразуется в строковое значение своего первого в порядке просмотра документа узла. Если множество пусто, функция возвращает пустую строку.

Объекты других типов преобразуются в строку в соответствии с собственными правилами. Например, результирующий фрагмент дерева преобразуется в конкатенацию всех своих строковых узлов.

Примеры

string(boolean(0)) = false
string(number('zero')) = NaN
string(number('.50000')) = 0.5
string(number(00500.)) = 500

Для строкового форматирования чисел рекомендуется использовать функцию XPath format-number совместно с элементом xsl:decimal-format.

Ссылки