Мне нужно изменить формат даты с 23.03.2018 на ДД-ММ-ГГГГ.
Вот мой входной XML-файл:
<ClientList>
<Client>
<CreateDate>2018-03-23</CreateDate>
</Client>
</ClientList>
Вот мой XSL-файл, в котором только что указана дата, как во входном XML.
<ClientList>
<Client>
<Data>
<xsl:value-of select = "CreateDate"/>
</Data>
</Client>
</ClientList>
Как изменить формат даты на ДД-ММ-ГГГГ (23-03-2018)?
Если вы используете XSLT 2.0, вы можете сделать это
<xsl:value-of select = "format-date(CreateDate, '[D01]-[M01]-[Y0001]')"/>
Если вы используете только XSLT 1.0, сделайте это
<xsl:value-of select = "concat(substring(CreateDate, 9, 2), '-', substring(CreateDate, 6, 2), '-', substring(CreateDate, 1, 4))"/>
<xsl:template match = "ClientList">
<xsl:element name = "ClientList">
<xsl:for-each select = "Client">
<xsl:element name = "Client">
<xsl:element name = "CreateDate">
<xsl:value-of select = "format-date(CreateDate,'[D01]-[M01]-[Y0001]')"/>
</xsl:element>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:template>