如何在xslt中转换日期格式

时间:2015-04-24 08:31:00

标签: xml xslt

如何在xslt中转换日期格式。我创建了如下所示的应用程序

我使用了xml:

2015-01-06T17:51:01.67 + 05:30

我的xslt文件:

选择= “格式的dateTime(TravellerRequest / RequestDate, '[M01] / [D01] / [Y0001]')”/>

在html页面中收到错误:

异常详细信息:System.Xml.Xsl.XsltException:'format-dateTime()'是一个未知的XSLT函数。

来源错误:

  

执行期间生成了未处理的异常   当前的网络请求。有关的来源和位置的信息   可以使用下面的异常堆栈跟踪来识别异常。

我需要这样的输出:01/06/2015

如何将上述日期时间格式转换为mm / dd / yyyy。

引导我。

谢谢, 拉姆...

2 个答案:

答案 0 :(得分:1)

format-dateTime()是一个XSLT 2.0函数。您的错误消息表明您使用的是XSLT 1.0处理器。 XSLT 1.0无法识别日期 - 但您可以使用字符串函数将日期重新排列为所需的格式:

<xsl:value-of select="substring(TravellerRequest/RequestDate, 9, 2)"/>
<xsl:text>/</xsl:text>
<xsl:value-of select="substring(TravellerRequest/RequestDate, 6, 2)"/>
<xsl:text>/</xsl:text>
<xsl:value-of select="substring(TravellerRequest/RequestDate, 1, 4)"/>

注意: 如果您使用的是Microsoft处理器(由Martin Honnen建议),请参阅: https://msdn.microsoft.com/en-us/library/ms256099%28v=vs.110%29.aspx

答案 1 :(得分:0)

该函数需要一个XSLT 2.0处理器,如Saxon 9或XmlPrime。基于消息System.Xml.Xsl.XsltException,您似乎使用Microsoft XSLT处理器,Microsoft仅支持XSLT 1.0。因此,您需要更改应用程序以使用第三方XSLT 2.0处理器,或者需要考虑使用.NET扩展对象或函数与Microsoft的XSLT处理器,以将格式委派给.NET代码,而不是XSLT代码。