xslt - 用于 When 循环的 XSLT 日期比较
问题描述
我正在比较 xsl:stylesheet version="1.0" 中的日期,如果日期差异大于 30 天,则将 Pkg 变量更新为 0。但它似乎不起作用。
<xsl:variable name="Packagedate" select="//segment[@name='Date']/value"></xsl:variable>
<xsl:variable name="date" select="substring($Packagedate, 5, 2)"/>-<xsl:value-of select="substring($Packagedate, 7)"/>-<xsl:value-of select="substring($Packagedate, 1, 4)"></xsl:variable>
<xsl:variable name="CurrentDate" select="format-dateTime(current-dateTime(),'[Y0001]-[M01]-[D01]')"></xsl:variable>
<xsl:when test="days-from-duration(xs:date($CurrentDate)- xs:date('$date)) > 30">
<div class="fieldvalue">
<xsl:variable name="Pkg"></xsl:variable>
<xsl:value-of select='0'/>
</div>
</xsl:when>
解决方案
您正在使用诸如days-from-duration()
和xs:date()
仅在 XSLT 2.0+ 中可用的功能,但是您正在 XSLT 1.0 处理器下运行样式表。您可能可以使用的选项包括:
升级到不同的 XSLT 处理器
使用 exslt.org 上的附加日期/时间库
调用主机编程语言(例如 Java 或 C#)中的函数。
推荐阅读
- java - 如何在 Redis 中存储 Tomcat 会话
- node.js - 在我的整个 express 应用上使用 Multer 中间件有什么缺点吗?
- amazon-web-services - 我可以创建不引用特定用户的 Cognito 兼容 JWT 吗?
- android - 在不取消导航的情况下使用 Intent 切换到 Android 上的 Google 地图
- javascript - 我该如何解决控制台。错误:这是一个空操作,但它表明您的应用程序中存在内存泄漏
- javascript - 他们在评估预请求脚本时出错:无法读取未定义的属性“获取”
- c# - dotnet ef 不尊重配置
- python - 熊猫剪影分数的正确数据格式
- spring - Spring Integration DSL:如何添加 HTTP.outboundGateway 标头?
- gitlab - gitkraken 无法连接到 gitlab 无效参数