0
下面的代码EXSLT模板日期:格式日期模板日期后工作不正确:添加
<td>
<xsl:call-template name="date:add">
<xsl:with-param name = "date-time" select ="hml:LT" />
<xsl:with-param name = "duration" select = "'PT1H'" />
</xsl:call-template>
</td>
<td>
<xsl:call-template name="date:format-date">
<xsl:with-param name = "date-time" select ="hml:LT" />
<xsl:with-param name = "pattern" select = "'dd, MMM yyyy'" />
</xsl:call-template>
</td>
输出像
<td>2011-01-18T07:27:24-00:00</td><td>18, 2011</td>
第二单元不包含月份的名称(MMM在模式)
在低于同一时间的代码工作正常
<td>
<xsl:call-template name="date:format-date">
<xsl:with-param name = "date-time" select ="hml:LT" />
<xsl:with-param name = "pattern" select = "'dd, MMM yyyy'" />
</xsl:call-template>
</td>
即无日期:添加调用之前我在输出得到正确的日期:
<td>18, Jan 2011</td>
难道缺陷EXSLT?或者我做错了什么?
我使用XSLT的EXSLT扩展,并导入了所有必需的模板。
下面是测试文件全文: XSLT:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:date="http://exslt.org/dates-and-times"
xmlns:hml="http://schemas.test/hml"
extension-element-prefixes="date"
exclude-result-prefixes = "hml"
>
<xsl:import href="date.add.template.xsl" />
<xsl:import href="date.format-date.template.xsl" />
<xsl:import href="str.padding.template.xsl" />
<xsl:output omit-xml-declaration="yes" />
<xsl:output method="html" indent="no" />
<xsl:template match="/">
<td>
<xsl:call-template name="date:add">
<xsl:with-param name = "date-time" select ="hml:LT" />
<xsl:with-param name = "duration" select = "'PT1H'" />
</xsl:call-template>
</td>
<td>
<xsl:call-template name="date:format-date">
<xsl:with-param name = "date-time" select ="hml:LT" />
<xsl:with-param name = "pattern" select = "'dd, MMM yyyy'" />
</xsl:call-template>
</td>
</xsl:template>
</xsl:stylesheet>
和XML:
<hml:LT xmlns:hml="http://schemas.test/hml">2011-01-19T02:16:06-00:00</hml:LT>
您使用哪种版本的XSLT处理器?请提供一些输入样本,以便我们重现问题。 – 2011-01-19 11:39:28
增加了对输入XML和XSLT的完整测试。至于XSLT处理器 - 它是Apache Xalan,它包含在Websphere 5 – Mikhail 2011-01-19 12:04:31