在XSLT中添加/减去时间

时间:2013-02-14 22:25:09

标签: xml xslt

我正在使用xpath 2.0。

我想在变量$orario中添加30分钟。

  <tempi id="ID_1">
    <orario_part>09:20:00</orario_part>
    ...
  </tempi>

这是我的代码,但它不起作用。

<xsl:template match="tempi">
   <xsl:variable name="orario" select="./orario_part"/>
   <xsl:variable name="totale" select="xs:time($orario)+xs:time('00:30:00')"/>
   <time>
       <xsl:value-of select="$totale"/>
   </time>
</xsl:template>

以下是期望的结果:

<time>09:50:00</time>

我该怎么做?

1 个答案:

答案 0 :(得分:4)

试试这个:

<?xml version="1.0" encoding="UTF-8"?>
<tempi id="ID_1">
    <orario_part>09:20:00</orario_part>
</tempi>

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    version="2.0" exclude-result-prefixes="#all">
    <xsl:template match="tempi">
        <xsl:variable name="orario" select="./orario_part" />
        <xsl:variable name="totale" select="xs:time($orario)"/>
        <time>
            <xsl:value-of select="$totale +  xs:dayTimeDuration('P0DT0H30M')"/>
        </time>
    </xsl:template>
</xsl:stylesheet>

给出

<time>09:50:00</time>