2015-05-08 69 views
0

我有一個場景,我們需要在現有日期中增加1天。像在<subscriptionDate>2015-05-06</subscriptionDate>我想增加1天,並將其值映射到<terminationDate>2015-05-07</terminationDate>。我如何使用XSLT來實現這一點。所以,所有的日期約束也應該被處理。比如如果一天是31,然後在一個月內增加。如何使用XSLT在日期中增加1天

<Subscription code="12345678R1"> 
     <userAccount>40000005b</userAccount> 
     <offerTemplate>Test</offerTemplate> 
     <subscriptionDate>2015-05-06</subscriptionDate> 
     <terminationDate></terminationDate> 
</Subscription> 
+1

請選擇XSLT 1.0或XSLT 2.0,而不是兩者。在這種情況下造成巨大的差異。 –

回答

4

假設XSLT 2.0,您可以添加持續時間到一個日期,例如,

<xsl:template match="terminationDate"> 
    <xsl:copy> 
    <xsl:value-of select="xs:date(preceding-sibling::subscriptionDate) + xs:dayTimeDuration('P1D')"/> 
    </xsl:copy> 
</xsl:template> 

請參閱http://xsltransform.net/pPqsHTP

+0

謝謝它的作品! –

+0

@Martin,如果格式如下,我們如何增加日期:2015-05-03T00:00:00Z –

+1

@omerkhalid,這是'xs:dateTime',所以你可以使用'xs:dateTime('2015 -05-03T00:00:00Z')+ xs:dayTimeDuration('P1D')'得到一個新的'xs:dateTime',並添加了持續時間。 –