XSLT:查找max Effdt,但排除任何大于今天的日期

问题描述 投票:0回答:1

寻找有关语法和最佳方法的一些帮助/指导。

这段代码找到了三个日期中的最大Effdt - 我很高兴去那个部分。问题:有些Effdts可能是未来的日期,我发现并返回max 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

谢谢!

xslt xslt-2.0
1个回答
1
投票

使用current-date函数和谓词:max((ws:Info/ws:Effdt1, ws:Info/ws:Effdt2, ws:Info/ws:Effdt3)/xs:date(.)[. lt current-date()])。或者可能比今天更大的是. le current-date()

© www.soinside.com 2019 - 2024. All rights reserved.