1

秒単位の期間で構成されるタグがある場合。

<mytag duration="29.473">

そして、XSLT を使用して、これを以下のようなものに変換したいと考えています。ここで、starttime は現在の時刻であり、endtime は現在の時刻 + 継続時間の秒数です。

<mytag starttime="date:date-time()" endtime="date:date-time() + duration">

これはどのように達成できますか?試してみましxs:dayTimeDurationたが、それを使用して期間を渡す方法がわかりません。どんな助けでも大歓迎です。私は XSLT が初めてです。ありがとう!

4

1 に答える 1

0

XSLT 2.0 を使用している場合はdurationxs: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"/>
于 2013-05-24T22:12:57.287 に答える