我在使用http://www.exslt.org/date/functions/difference/index.html提供的默认日期:差异 EXSLT 模板时遇到了一些问题。我已经能够缩小问题范围并找到根源:我的 XSL 处理器。问题是,我可以访问的 XSLT 处理器说,日期“2011-02-28T10:00:00”和“2011-03-01T10:00:00”之间的差异是 -P27DT9H,当真正的区别在于 PT15H(此持续时间是其他 XSLT 处理器,例如 Xalan 和 Saxon 正确计算的时间 - 通过 Oxygen XML 编辑器测试)。
现在,有没有办法编辑 XSL 模板(日期:差异)以使其与我的 XSL 处理器正常工作?我认为我正在使用的处理器是 JAXP 1.3 - 从可用的 SAP MII 12.1 文档中很难弄清楚。
注意:不可能安装另一个 XSLT 处理器 :)
编辑:进一步的研究表明,“在幕后”,JAXP 正在运行 Xalan(system-property('xsl:vendor') 返回“Apache Software Foundation (Xalan XSLTC)”)
编辑:问题的根源已经确定(!),但我无法找到任何可接受的解决方案。date:difference 模板使用“document('')/*/...”从 xsl 文档本地获取数据集。“文档('')”技巧不适用于我的处理器。我尝试将本地数据集添加到变量并使用 exslt:node-set() 创建节点集,但我已经遇到了 DTM 问题,并且添加该方法可以减少我可以使用的数据量处理比现在更多:(