我想要在XSL中偏移时区,但得到了错误:
当我从名称空间xmlns:xs="http://www.w3.org/2001/XMLSchema"使用dayTimeDuration时,我得到以下错误:
Error at xsl:variable on line 11 of :
XPST0017: XPath syntax error at char 90 on line 11 in {..., xs:dayTimeDuration('PT2H'...}:
Unknown constructor function: {http://www.w3.org/2001/XMLSchema}dayTimeDuration
javax.xml.transform.TransformerConfigurationException: Failed to compile stylesheet. 1 error detected.当我使用xs:dayTimeDuration表单命名空间xmlns:xdt="http://www.w3.org/2005/xpath-datatypes"时,我看到以下错误:
net.sf.saxon.s9api.SaxonApiException: Errors were reported during stylesheet compilation如何在XSL中偏移当前时间。下面是一个失败的例子:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://www.preadviceevents/functions"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:common="http://www.hermes.co.uk/v2.0.7/common"
xmlns:pe="http://www.hermes.co.uk/v2.0.7/preadviceEvents"
xmlns:pct="http://www.hermes.co.uk/v2.0.7/parcelTypes"
xmlns="http://www.cognitomobile.com/schemas/FieldForceIQ/1.0/TAMS"
xmlns:xdt="http://www.w3.org/2005/xpath-datatypes"
exclude-result-prefixes="xs common pe pct fn">
<xsl:variable name="dateNow" select="format-dateTime(adjust-dateTime-to-timezone(current-dateTime(), xdt:dayTimeDuration('PT2H')), '[Y0001]-[M01]-[D01]T[H01]:[m01]:[s01]')"/>
<xsl:variable name="dateNow" select="format-dateTime(adjust-dateTime-to-timezone(current-dateTime(), xs('PT2H')), '[Y0001]-[M01]-[D01]T[H01]:[m01]:[s01]')"/>我没看就试过xdt和xs了。我遗漏了什么?有没有更好的方法来实现我想要的。
发布于 2019-09-25 02:04:14
正确的名称空间是http://www.w3.org/2001/XMLSchema。命名空间http://www.w3.org/2005/xpath-datatypes在规范草案中使用了很短的时间,但从未在最终语言中使用过。当然,您可以使用任何您喜欢的前缀,只要将它绑定到正确的名称空间即可。如果您在名称空间http://www.w3.org/2001/XMLSchema中遇到错误,那么我们需要查看错误是什么。
https://stackoverflow.com/questions/58084264
复制相似问题