fn:days-from-duration()
期間をxs:integer
:として取得するために使用できます。
days-from-duration($arg as xs:duration?)
なのでxs:integer?
xs:integer
の値の正規の字句表現で日コンポーネントを表すを返します$arg
。結果はマイナスになる可能性があります。
詳細については、XQuery1.0およびXPath2.0の関数と演算子の仕様を参照してください。
あなたの場合:
<xsl:template match="moveInDate">
<xsl:value-of select="days-from-duration(current-date() - xs:date(.))"/>
</xsl:template>
お役に立てれば!
編集:部分文字列処理を使用して、あなたが言うようにそれを行うこともできます。しかし、あなたが指摘するように、それは好まれません。何らかの理由で同様のことをしたい場合は、データ型について考える必要があります。の結果は、キャストせずに部分文字列関数で処理できないものcurrent-date() - xs:date(.)
として返されます。xs:duration
<xsl:template match="moveInDate">
<xsl:variable name="dur" select="(current-date() - xs:date(.)) cast as xs:string"/>
<xsl:value-of select="substring-before(substring-after($dur, 'P'), 'D')"/>
</xsl:template>