2014-05-09 42 views
1

在我的样式表中,在标题位置,我有一个日期列,其中日期应该是当前日期。在xsl中自动生成日期

我该怎么做?

我的XSL文件

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:fo="http://www.w3.org/1999/XSL/Format" 

<fo:table-row> 
    <fo:table-cell border="solid" border-width="1pt" padding-left="-7mm"> 
     <fo:block> 
      DATE 
     </fo:block> 
    </fo:table-cell> 
    <fo:table-cell border="solid" border-width="1pt" padding-left="-9mm"> 
     <fo:block> 

      current date should come here 

     </fo:block> 
    </fo:table-cell> 
</fo:table-row> 
+1

为什么你的样式在这里失去了最重要的一块:您正在使用的XSLT版本? –

回答

1

XSL 2.0版:

<fo:block> 
     <xsl:value-of select="current-dateTime()"/> 
    </fo:block> 

格式日期时间:

<xsl:value-of select="format-dateTime(current-dateTime(),'[D]-[MN]-[Y] [FN] at [H]:[m01]:[s01]')"/> 
+0

感谢您的快速响应。我已经使用该代码。但是当我正在进行转换时,转换失败并显示错误,因为format-datetime不是有效的XSLT或Xpath函数 – ramu246

1

如果您正在使用XSLT 1.0,您需要:

(1)在运行期间将当前日期作为参数传递给样式表;

(2)使用EXSLT date:date-time() extension function,其中大多数(但不是全部)XSLT 1.0处理器的支持。

2

对于XSLT 1您可以使用此:

<xsl:value-of select="document(&apos;http://xobjex.com/service/date.xsl&apos;)/date/utc/@rfc-822"/> 

然后,您可以使用子或一个xsl:选择日期格式,以您的需求

+0

我使用了这个。但我得到错误,Fo转换失败 – ramu246

+0

怀疑这是您的样式表中其他地方的问题?您的示例代码在命名空间声明末尾缺少a>。没有日期呼叫,它会编译好吗? – user2532030

+0

是的。汇编顺利,日期调用 – ramu246