如果我的标签包含持续时间(以秒为单位)。
<mytag duration="29.473">
我希望使用XSLT将其转换为类似下面的内容,其中starttime是当前时间,endtime是当前时间+持续时间秒。
<mytag starttime="date:date-time()" endtime="date:date-time() + duration">
如何实现这一目标?我已经尝试了xs:dayTimeDuration
,但我不确定如何使用它并传递持续时间。任何帮助将不胜感激。我是XSLT的新手。谢谢!
答案 0 :(得分:0)
如果您使用的是XSLT 2.0,则可以将duration
转换为xs:dayTimeDuration
。我还建议将当前的dateTime变为一个变量,因此它在您使用它的所有地方都完全相同。
示例...
XML输入
<mytag duration="29.473"/>
XSLT 2.0
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:variable name="currDT" select="current-dateTime()"/>
<xsl:template match="/*">
<mytag starttime="{$currDT}" endtime="{$currDT + xs:dayTimeDuration(concat('PT',@duration,'S'))}"/>
</xsl:template>
</xsl:stylesheet>
<强>输出强>
<mytag starttime="2013-05-24T16:15:13.346-06:00"
endtime="2013-05-24T16:15:42.819-06:00"/>