【发布时间】:2014-06-02 07:44:57
【问题描述】:
我正在尝试在动态导航中格式化 XSLT,以便以特定格式呈现日期。我的代码生成以下错误:
"An unknown error occurred."
XSLT 代码是:
<xsl:template name="CustomDate-DN">
<xsl:param name="d"/>
<xsl:value-of select="format-date($d, '[D01] [MN,*-3] [Y0001]', 'en', (), ())"/>
</xsl:template>
<xsl:template match="PV" mode="display_value">
<xsl:param name="js_escape"/>
<xsl:choose>
<!-- Customizations - Fancy Date -->
<xsl:when test="../@T = 4">
<xsl:call-template name="CustomDate-DN">
<xsl:with-param name="d" select="@V"/>
</xsl:call-template>
</xsl:when>
<!-- End of Customization -->
...
如果我替换
<xsl:value-of select="format-date($d, '[D01] [MN,*-3] [Y0001]', 'en', (), ())"/>
与
<xsl:value-of select="$d"></xsl:value-of>
它似乎有效,但日期格式错误。
我将不胜感激。谢谢。
更新:我的日期目前看起来像dd/mm/yyyy。我正在使用 xslt 2.0。我认为问题在于我将字符串传递给 format-date 函数。该函数需要一个日期。我不确定如何将dd/mm/yyyy 字符串转换为日期。
【问题讨论】:
-
您确定您使用的是 XSLT 2.0 处理器吗? format-date 是 XSLT/XPath 2.0 中的新功能。如果您使用 XSLT 2.0 处理器,当您收到错误时,
$d和@V的外观如何? -
目前看起来像 dd/mm/yyyy。我正在使用 xslt 2.0。我认为问题在于我将字符串传递给 format-date 函数。该函数需要一个日期。我不确定如何将 dd/mm/yyyy 字符串转换为日期?