2012-09-10 58 views
0

试图日期转换为特定的格式,但得到的错误:如何使用xlst格式​​化日期?

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://www.openapplications.org/oagis/9" 
xmlns:xs="http://www.w3.org/2001/XMLSchema"> 

<xsl:variable name="origDate" select="row[@num='6']/cell[@num='2']"/> 
<PromisedDeliveryDateTime><xsl:value-of select="format-date(xs:date($origDate), '[Y] [M] [D]')" /></PromisedDeliveryDateTime> 

错误:

Failed to transform XQMessage part, index=0 (Invalid date "30.11.2011" (Non-numeric component)

回答

2

的XS:日期()构造函数预计ISO日期格式的字符串:2011-11-30 。要操纵其他格式的日期,您首先需要将它们转换为ISO格式,您可以将其转换为例如

string-join(reverse(tokenize($in, '.')), '-') 
+1

谢谢!但仍然有些问题: '无法转换XQMessage部分,索引= 0(无效日期”----------“比四位数) – VextoR

+0

@VextoR没有人会在评论供稿中阅读XML,更新您的问题并提及您使用的XSLT处理器。 –