Функция преобразования строки в дату в XSLT не найдена - PullRequest
0 голосов
/ 01 декабря 2018

Я пытаюсь определить, находится ли текущая дата между двумя другими датами в XSLT / XPath.Я обнаружил, что xs: date (STRING) преобразует строку даты в значение даты, и затем я могу сравнить ее с current-date ().

Моя проблема заключается в том, что при попытке этого я получаю сообщение об ошибке:не существует.Также не существует dateTime.Вот мой код с пространствами имен, которые я использую.

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fn="http://www.w3.org/2005/04/xpath-functions/"
xmlns:xs="http://www.w3.org/2001/XMLSchema/">


        <xsl:if test = "fn:current-dateTime lt fn:date(EndDateActive)
                        and fn:current-dateTime gt fn:date(StartDateActive)">

Строки End и Start Date правильно отформатированы afaik (yyyy-mm-dd), и я попробовал также следующие опции, все они говоряту меня функция не существует:

xs:date(EndDateActivate)
xsl:date(EndDateActivate)
fn:dateTime(EndDateActivate)
xs:dateTime(EndDateActivate)
xsl:dateTime(EndDateActivate)

1 Ответ

0 голосов
/ 02 декабря 2018

Существует несколько проблем:

Внесите следующие изменения в объявления пространства имен:

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fn="http://www.w3.org/2005/xpath-functions"
xmlns:xs="http://www.w3.org/2001/XMLSchema"

и на ваш @test:

<xsl:if test="fn:current-date() lt xs:date(EndDateActive)
          and fn:current-date() gt xs:date(StartDateActive)">
</xsl:if>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...