我在level3中的xml
<IncorporationDate>
<CCYY>2016</CCYY>
<MM>04</MM>
<DD>21</DD>
</IncorporationDate>
现在我需要将其显示为2016年4月21日
所以我尝试连接这个并使用format-date但是在尝试格式化字符串时会出错。
<xsl:variable name="incorpDate">
<xsl:value-of select="concat(//a:Identification/b:IncorporationDate/c:DD,'/',//a:Identification/b:IncorporationDate/c:MM,'/',//a:Identification/b:IncorporationDate/c:CCYY)"/>
</xsl:variable>
然后
<xsl:value-of select="format-date($incorpDate, '[D] [MNn] [Y0001]')" />
我在整个节点上尝试格式化日期
<xsl:value-of select="format-date(//a:Identification/b:IncorporationDate, '[D] [MNn] [Y0001]')" />
我知道这可能很简单,但xml / xslt并不是我所知道的,我知道这需要改变很多样式表。
答案 0 :(得分:3)
创建xs:date
,然后格式化:
<xsl:template match="IncorporationDate">
<xsl:value-of select="format-date(xs:date(concat(CCYY, '-', MM, '-', DD)), '[D] [MNn] [Y0001]')"/>
</xsl:template>
完整样本
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="IncorporationDate">
<xsl:value-of select="format-date(xs:date(concat(CCYY, '-', MM, '-', DD)), '[D] [MNn] [Y0001]')"/>
</xsl:template>
</xsl:transform>
答案 1 :(得分:0)
我知道我做错了什么。
在concat上我应该制作一个YYYY-MM-DD格式,这样格式化日期功能就可以了。
我改变了它,它正在发挥作用。