我收到日期從XML作爲XSLT下面一個大十進制格式迄今:是否有可能在XSLT
<DATE>20161211000000</DATE>
我想這是11格式化爲有效的日期格式月2016
那麼是否有可能在xslt中格式化日期?
請幫忙。
我收到日期從XML作爲XSLT下面一個大十進制格式迄今:是否有可能在XSLT
<DATE>20161211000000</DATE>
我想這是11格式化爲有效的日期格式月2016
那麼是否有可能在xslt中格式化日期?
請幫忙。
在XSLT 1.0,你可以這樣做:
<xsl:template match="DATE">
<xsl:copy>
<xsl:value-of select="substring(., 7, 2)" />
<xsl:text> </xsl:text>
<xsl:variable name="month" select="substring(., 5, 2)" />
<xsl:value-of select="substring('JanFebMarAprMayJunJulAugSepOctNovDec', 3 * ($month - 1) + 1, 3)"/>
<xsl:text> </xsl:text>
<xsl:value-of select="substring(., 1, 4)" />
</xsl:copy>
</xsl:template>
感謝您的回覆,我嘗試了您的代碼,它的工作。你可以告訴我,如果我需要改變2016年12月11日這樣的格式。我該怎麼辦? –
我認爲代碼足夠清晰,可以讓您自行進行調整。 –
感謝您的回覆,我試過了,它的未來很好。但需要問一件事,是否可以將此模板添加到兩個不同的節點。我的意思是我不想再次爲兩個diff節點複製相同的邏輯n。這將是一個很大的幫助。 –
你沒有一個大的小數而是與代表的格式的日期一些價值在XSLT不支持,所以你需要將其轉換成XSLT 2.0 xs:date
值,然後你可以format-date
格式化元素(https://www.w3.org/TR/xslt20/#date-time-examples):
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0">
<xsl:template match="DATE">
<xsl:copy>
<xsl:value-of
select="
format-date(xs:date(
concat(substring(., 1, 4), '-', substring(., 5, 2), '-', substring(., 7, 2))), '[D01] [MN,*-3] [Y0001]')"
/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
你可以使用XSLT2.0? –
我正在使用XSLT1.0 –