XSLT创建存储当前四位年份变量失败,求问题排查及解决方法
解决XSLT获取当前四位年份的问题
你的代码存在两个关键问题,导致无法正常运行:
- 函数名拼写错误:
current-dayTime()是错误写法,XSLT中获取当前日期时间的正确函数为current-dateTime()(遵循驼峰命名规则) - 无效运算逻辑:
$currentYear - year里的year是未定义的变量,若仅需获取当前年份,这行代码完全多余
正确实现方式
如果只需要当前日期的年份,直接用current-date()配合year-from-date()函数更简洁可靠(无需处理时间部分):
<xsl:variable name="currentYear" select="year-from-date(current-date())"/> <!-- 输出四位年份 --> <xsl:value-of select="$currentYear"/>
若需基于当前日期时间获取年份,修正函数名即可:
<xsl:variable name="currentYear" select="year-from-dateTime(current-dateTime())"/> <xsl:value-of select="$currentYear"/>
关于你尝试的number(substring(current-date()))的问题
这种写法在部分XSLT版本中需要先将日期类型转为字符串,否则无法直接截取:
<xsl:variable name="currentYear" select="number(substring(string(current-date()), 1, 4))"/>
但这种写法依赖日期的默认字符串格式(YYYY-MM-DD),不如内置的year-from-date()函数规范,兼容性也更差。
内容的提问来源于stack exchange,提问作者sansievar
相关产品推荐
相关产品推荐

