XSLT / XPath函数month-from-dateTime(datetime)未按预期工作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XSLT / XPath函数month-from-dateTime(datetime)未按预期工作相关的知识,希望对你有一定的参考价值。

在我的XSLT样式表中,我使用像这样的month-from-dateTime提取当前月份的值

<xsl:stylesheet version="2.0" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" ...>
...
<xsl:value-of select="fn:month-from-dateTime(fn:current-dateTime())" />

这将返回3(为3月),但根据这个XSL reference,我希望它返回带有前导零的值:03。我错过了什么?我使用Saxon9HE的TransformerFactory

答案

根据W3C documentation

fn:month-from-dateTime(xs:dateTime(“1999-05-31T13:20:00-05:00”))返回5。

所以我的期望是错误的。

另一答案

您可以将退货格式设置为:

fn:format-number(fn:month-from-dateTime(xs:dateTime("1999-05-31T13:20:00-05:00")), '00')

它将返回05

以上是关于XSLT / XPath函数month-from-dateTime(datetime)未按预期工作的主要内容,如果未能解决你的问题,请参考以下文章

如何在 xpath 表达式中实现具有名称的用户定义函数?

XSLT:测试当前元素是不是匹配变量 xpath

xslt 中的 xpath 产生与直接评估 xpath 不同的结果

优化 xslt xpath 匹配表达式

XML-XSLT-XPATH:如何获取重复记录?

使用 xslt 2 从节点生成 xpath