XSLT Сравнение дат для цикла When - PullRequest
0 голосов
/ 05 мая 2020

Я сравниваю даты в xsl: stylesheet version = "1.0", и если разница в датах больше 30 дней, то обновляю переменную Pkg на 0. Но похоже, что это не работает.

<xsl:variable name="Packagedate" select="//segment[@name='Date']/value"></xsl:variable> 
<xsl:variable name="date" select="substring($Packagedate, 5, 2)"/>-<xsl:value-of select="substring($Packagedate, 7)"/>-<xsl:value-of select="substring($Packagedate, 1, 4)"></xsl:variable>
<xsl:variable name="CurrentDate" select="format-dateTime(current-dateTime(),'[Y0001]-[M01]-[D01]')"></xsl:variable>

<xsl:when test="days-from-duration(xs:date($CurrentDate)- xs:date('$date)) > 30">
<div class="fieldvalue">
<xsl:variable name="Pkg"></xsl:variable>
<xsl:value-of select='0'/>
</div>
</xsl:when>

1 Ответ

1 голос
/ 05 мая 2020

Вы используете такие функции, как days-from-duration() и xs:date(), которые доступны только в XSLT 2.0+, но вы запускаете свою таблицу стилей под процессором XSLT 1.0. Вам могут быть доступны следующие варианты:

  • Обновление до другого процессора XSLT

  • Использование дополнительной библиотеки даты / времени на exslt .org

  • Вызов функций на вашем главном языке программирования (например, Java или C#).

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