xml - 如何在 XSLT 2.0 中增加日期和时间

标签 xml xslt xslt-2.0

我有一个以下日期场景,其中我想增加日期,但日期格式如下:2015-05-03T00:00:00Z。我只想增加一天的日期。因此,如果达到 31,则应更新该月份。我看到一个existing问题,但解决方案不适用于我的场景。

XML:

<?xml version="1.0" encoding="UTF-8"?>
<rootElement>

    <TestDate>2015-05-03T00:00:00Z</TestDate>
</rootElement>

XSLT:

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"   version="2.0">


    <xsl:template match="rootElement">
      <TransformDate>
          <xsl:value-of select="substring(TestDate,1,10)" />
      </TransformDate>
    </xsl:template>
</xsl:transform>

结果:

    <?xml version="1.0" encoding="UTF-8"?>
<TransformDate>2015-05-03</TransformDate>

预期结果:

<?xml version="1.0" encoding="UTF-8"?>
<TransformDate>2015-05-04T00:00:00Z</TransformDate>

最佳答案

尝试使用此样式表:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <xsl:strip-space elements="*"/>
    <xsl:output indent="yes" omit-xml-declaration="yes"/>

    <xsl:template match="rootElement">
        <xsl:element name="TransformDate">
            <xsl:value-of select="xs:dateTime(TestDate) + xs:dayTimeDuration('P1D')"/>
        </xsl:element>
    </xsl:template>

</xsl:stylesheet>

关于xml - 如何在 XSLT 2.0 中增加日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30186470/

相关文章:

c# - 从 xml 文件读取语法时,语音识别 : Result. Semantic.ContainsKey 始终为 false

java - XML 解码错误

javascript - 使用javascript在 Canvas 中创建缩略图

c# - 使用 C# 在内存中进行 XSLT 转换

html - 使用 copy-of 和 document() 将 SVG 添加到 XHTML 输出

javascript - 使用 Javascript 作为 XSLT 转换的一部分时如何传递参数

xml - 使用 XSLT 自动生成 XML 模式

visual-studio-2010 - 尝试在 Visual Studio 中调试 XSLT 时出现 System.Xml.Xsl.CompiledQuery.Query.staticData 错误

xslt - 这是做什么的? <xsl :apply-templates select ="."/> and <xsl:apply-templates select ="*|@*"/>

xml - XSLT 2.0-保留默认元素,删除重复的同级,按属性过滤不必要的条目