XSLT: найти максимальное значение Effdt, но исключить любую дату, превышающую сегодняшнюю - PullRequest
0 голосов
/ 25 апреля 2019

Требуется некоторая помощь / руководство по синтаксису и лучший способ сделать это.

Этот код находит максимальное значение Effdt из трех дат - я хорошо согласен с этой частью.Проблема: некоторые Effdts могут быть датами в будущем, которые я не хочу учитывать при поиске и возврате максимального Effdt.Как я могу сказать: Найти максимальное значение Effdt из трех дат, но исключить любую дату, которая больше, чем сегодня.

<xsl:value-of select="format-date(max((xs:date(ws:Info/ws:Effdt1), xs:date(ws:Info/ws:Effdt2), xs:date(ws:Info/ws:Effdt3) )), '[Y0001][M01][D01]') "/>

Например, скажем, xslt возвращает эти три даты: 20190401 20190424 20190430

Я хочу найти максимальное значение Effdt, которое не прошло сегодня, поэтому ожидаем результатов: 20190424

Спасибо!

1 Ответ

1 голос
/ 25 апреля 2019

Используйте функцию current-date и предикат: max((ws:Info/ws:Effdt1, ws:Info/ws:Effdt2, ws:Info/ws:Effdt3)/xs:date(.)[. lt current-date()]).Или, вероятно, больше, чем сегодня будет . le current-date().

...