You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XSLT使用msxsl:script调用VBScript Date函数报错问题咨询

报错原因

该问题是.NET托管环境下msxsl脚本的标识符命名冲突导致的,具体逻辑如下:

  • VS 2019的XSLT调试器使用.NET框架的XSLT处理器执行带msxsl扩展脚本的样式表,脚本运行在.NET托管上下文的VB兼容解析环境中,而非独立的VBScript解释器
  • 该上下文中Date标识符会被优先绑定到.NET内置的System.DateTime值类型(旧版.NET框架中该类型曾别名Date),不会被识别为VBScript内置的无参Date()函数
  • 你编写的Year(Date)代码会被解析器误判为VB.NET的泛型调用语法Year(Of Date),但Year函数本身不支持泛型参数,因此抛出「无类型参数、不能传入类型实参」的报错
  • Now没有对应的.NET内置类型重名,因此会被正确识别为VBScript的Now()内置函数,返回合法的日期时间值传入日期处理函数,运行正常

解决方法

如果要保留Date函数的使用,只需要给Date加括号明确标识为函数调用即可:

Function Today()
  Today= year(Date()) & "-" & LeadNumWith0(month(Date())) & "-" & LeadNumWith0(day(Date()))      
End Function

也可以直接使用Now函数替代,你的代码仅取年月日部分,二者使用效果完全一致。

内容的提问来源于stack exchange,提问作者Bochen Lin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 18:18:03