Есть ли точка в строке (строка (.)) В XSLT? - PullRequest
2 голосов
/ 19 марта 2012

Я имею дело с некоторым автоматически сгенерированным XSLT-кодом.

Содержит следующее:

string(string(.))
number(string(.))
string(number(string(.)))

Есть ли смысл в этом? Или они сводятся к

string(.)
number(.)
string(.)

Ответы [ 2 ]

2 голосов
/ 19 марта 2012

Как говорит Мартин.

В XPath 2.0 существуют крайние случаи, когда число (строка (.)) Не совпадает с числом (.), Например, если элемент контекста является экземпляром xs: gYear, тогда число (.) не будет выполнено, но число (строка (.)) будет успешным;наоборот, если элемент контекста является логическим, число (.) преобразует true в 1 и false в 0, а число (string (.)) преобразует оба в NaN.Но маловероятно, что эти крайние случаи важны для вашего приложения.

2 голосов
/ 19 марта 2012

Для первого я почти уверен, что его можно уменьшить до string(.).Для третьего я не думаю, что вы можете уменьшить его до string(.), как, например, для контекстного узла, имеющего символ в качестве строкового содержимого (например, <foo>a</foo>), выполнив number(string(.)), вы получите специальное числовое значение "нечисло ", и если вы снова наберете string(), вы получите (http://www.w3.org/TR/xpath/#section-Number-Functions, http://www.w3.org/TR/xpath/#section-String-Functions) строку" NaN ".крайние случаи со ссылками, которые я предоставил.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...