2015-04-24 4 views
2

Я хочу получить знак числа с помощью XPath. Есть встроенная функция или обходной путь в Xpath.Могу ли я получить знак числа, используя xpath

В качестве примера: когда я прохожу -3.23 он должен вернуться «-» и 3.23 он должен вернуть «+»

+0

https://developer.mozilla.org/en-US/docs/Web/XPath/Functions/substring –

+0

@MarcB Как это должно работать с положительными цифрами? – hek2mgl

+0

Могу ли я получить абсолютное значение числа? – user2694734

ответ

1

Используйте этот 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

Вы можете получить подразумеваемой знак путем сравнения числа к 0:

if ($num >= 0) then '+' else '-'