XPATH:忽略从日期开始的毫秒数

时间:2013-05-07 23:03:29

标签: xpath

我正在尝试使用以下

进行提取
<xsl:template match="//alarms:alarmRaisedTime">
        <xsl:variable name="secondsSince1970" select="(xs:dateTime(.) - xs:dateTime('1970-01-01T00:00:00')) div xs:dayTimeDuration('PT1S')" />
        <xsl:element name="alarmRaisedTime" namespace="MY NAME SPACE">
            <xsl:value-of select="$secondsSince1970"/>
        </xsl:element>
</xsl:template>

我得到的输出是

<alarmRaisedTime>1367855105.001</alarmRaisedTime>

我想得到以下给定的输出(注意Milli秒被删除)

<alarmRaisedTime>1367855105</alarmRaisedTime>

我尝试了以下内容:

<xsl:value-of select="fn:substring-before($secondsSince1970,.)"/>

但它不起作用。

2 个答案:

答案 0 :(得分:2)

更简单

floor($secondsSince1970)

definition

  

floor函数返回最大(最接近正无穷大)的数字,该数字不大于参数,并且是一个整数。

答案 1 :(得分:1)

尝试

<xsl:value-of select="fn:substring-before($secondsSince1970,'.')"/>

表达式中的.引用了上下文项alarms:alarmsRaisedTime