一尘不染

通过XSLT以XML格式格式化日期

c#

当我使用XML序列化程序序列化时DateTime,它以以下格式编写:

<Date>2007-11-14T12:01:00</Date>

当通过XSLT样式表传递它以输出HTML时,如何格式化?在大多数情况下,我只需要日期,而当我需要时间时,我当然不希望其中包含“有趣的T”。


阅读 621

收藏
2020-05-19

共1个答案

一尘不染

以下是几个您可以使用的1.0模板:

<xsl:template name="formatDate">
    <xsl:param name="dateTime" />
    <xsl:variable name="date" select="substring-before($dateTime, 'T')" />
    <xsl:variable name="year" select="substring-before($date, '-')" />
    <xsl:variable name="month" select="substring-before(substring-after($date, '-'), '-')" />
    <xsl:variable name="day" select="substring-after(substring-after($date, '-'), '-')" />
    <xsl:value-of select="concat($day, ' ', $month, ' ', $year)" />
</xsl:template>

<xsl:template name="formatTime">
    <xsl:param name="dateTime" />
    <xsl:value-of select="substring-after($dateTime, 'T')" />
</xsl:template>

致电给他们:-

    <xsl:call-template name="formatDate">
        <xsl:with-param name="dateTime" select="xpath" />
    </xsl:call-template>

    <xsl:call-template name="formatTime">
        <xsl:with-param name="dateTime" select="xpath" />
    </xsl:call-template>

其中xpath是具有标准日期时间格式的元素或属性的路径。

2020-05-19