I am trying to write XSLT for finding the start and end date of a persons Leave of absence then formatting it. The persons xml I'm using has two different LOA sections. I am having trouble getting the oldest of the start dates and the most recent leave end date and then formatting them. Getting errors like to many arguments. I'm sure it's something simple but I can't seem to get it.
<LOA_Start_Date xtt:fixedLength="8">
<xsl:if test="ws:Status/ws:Employee_Status = 'On_Leave'">
<xsl:value-of select="ws:Leave_of_Absence = ws:On_Leave['true']"/>
</xsl:if>
<xsl:then>
<xsl:value-of select="format-date(min(ws:Leave_Start_Date, '[Y0001][M01][D01]'))"/>
</xsl:then>
</LOA_Start_Date>
<LOA_End_Date xtt:fixedLength="8">
<xsl:if test="ws:Status/ws:Employee_Status = 'Return_From_Leave'">
<xsl:value-of select="ws:Leave_of_Absence = ws:On_Leave['false']"/>
</xsl:if>
<xsl:then>
<xsl:value-of select="format-date(max(ws:Leave_End_Date, '[Y0001][M01][D01]'))"/>
</xsl:then>
</LOA_End_Date>
XML section:
<ws:Leave_of_Absence>
<ws:On_Leave>true</ws:On_Leave>
<ws:Leave_Start_Date>2022-10-27</ws:Leave_Start_Date>
</ws:Leave_of_Absence>
<ws:Leave_of_Absence>
<ws:On_Leave>false</ws:On_Leave>
<ws:Leave_Start_Date>2022-10-24</ws:Leave_Start_Date>
<ws:Leave_End_Date>2022-10-27</ws:Leave_End_Date>
</ws:Leave_of_Absence>
Call
max
on a sequence ofxs:date
values e.g.max(.//ws:Leave_End_Date/xs:date(.))
. You can pass the max value at theformat-date
function.