タイムスタンプを生成しようとしていますが、浮動小数点数が返されます:
<xsl:variable name="timestamp" select="seconds-from-dateTime(current-dateTime())-seconds-from-dateTime(xs:dateTime('1970-01-01T00:00:00'))"/>
次のように sth を出力します。40.638
ここで説明する関数を使用しています
リンク先のページから:
引数のローカライズされた値の秒コンポーネントを表す 10 進数を返します
2 番目の値の秒コンポーネントは 0 で、最初の値の秒コンポーネントは [0, 60) の範囲の値であるため、結果は常に 0 から 60 の間になります。これを試しましたか:
<xsl:variable name="duration"
select="current-dateTime() - xs:dateTime('1970-01-01T00:00:00')" />
<xsl:variable name="timestamp"
select="floor(days-from-duration($duration) * 3600 * 24 +
hours-from-duration($duration) * 3600 +
minutes-from-duration($duration) * 60 +
seconds-from-duration($duration))" />