Я хочу получить знак числа с помощью XPath. Есть встроенная функция или обходной путь в Xpath.Могу ли я получить знак числа, используя xpath
В качестве примера: когда я прохожу -3.23 он должен вернуться «-» и 3.23 он должен вернуть «+»
Я хочу получить знак числа с помощью XPath. Есть встроенная функция или обходной путь в Xpath.Могу ли я получить знак числа, используя xpath
В качестве примера: когда я прохожу -3.23 он должен вернуться «-» и 3.23 он должен вернуть «+»
Используйте этот XPath 2.0 выражение:
'+'[$x ge 0], '-'[$x lt 0]
где $ х это число, знак которого хотел.
Это короче и может быть немного более эффективным (имеющих только одно сравнение):
('+'[$x ge 0], '-')[1]
Используйте этот XPath 1.0 выражение:
substring('+-', 2 - ($x >= 0), 1)
Пояснение: Выражение производит подстроку строки '+-'
с длиной 1 и смещением определяется 2 - ($x >= 0)
- где мы используем тот факт, что в XPath 1.0, если логическое значение является аргументом арифметической операции, true()
преобразуются в 1
и false()
преобразуется в 0
Вы можете получить подразумеваемой знак путем сравнения числа к 0
:
if ($num >= 0) then '+' else '-'
https://developer.mozilla.org/en-US/docs/Web/XPath/Functions/substring –
@MarcB Как это должно работать с положительными цифрами? – hek2mgl
Могу ли я получить абсолютное значение числа? – user2694734