2015-05-12 52 views
2

我有一個以下日期場景,其中我想在日期中增加日期,但日期格式如下:2015-05-03T00:00:00Z。我只想在一天的日期增加。因此,如果達到31,那麼應該更新月份。我看到一個existing的問題,但解決方案不適用於我的方案。如何在XSLT 2.0中增加日期和時間

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> 

EXPEC tedResult:

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

「*我看到了存在的問題,但解決方案不工作對我的情景。*」 爲什麼不呢?我沒有看到你試圖實現它。 –

回答

2

嘗試用這個樣式表:

<?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>