での日付に大きな小数をフォーマットすることが可能です私は以下のように、XSLTからXMLでの日付を取得しています:は、XSLT
<DATE>20161211000000</DATE>
は、私は12月11日2016年
として有効な日付形式にこれをフォーマットしたいですxsltの中で日付をフォーマットすることは可能ですか?
助けてください。
での日付に大きな小数をフォーマットすることが可能です私は以下のように、XSLTからXMLでの日付を取得しています:は、XSLT
<DATE>20161211000000</DATE>
は、私は12月11日2016年
として有効な日付形式にこれをフォーマットしたいですxsltの中で日付をフォーマットすることは可能ですか?
助けてください。
XSLT 1.0では、あなたが行うことができます:
<xsl:template match="DATE">
<xsl:copy>
<xsl:value-of select="substring(., 7, 2)" />
<xsl:text> </xsl:text>
<xsl:variable name="month" select="substring(., 5, 2)" />
<xsl:value-of select="substring('JanFebMarAprMayJunJulAugSepOctNovDec', 3 * ($month - 1) + 1, 3)"/>
<xsl:text> </xsl:text>
<xsl:value-of select="substring(., 1, 4)" />
</xsl:copy>
</xsl:template>
返信ありがとう、私はあなたのコードを試して、それは働いた。 2016年12月11日のようにフォーマットを変更する必要があるかどうか教えてください。私はどうしますか? –
私はこのコードを自分で調整するだけで十分だと思います。 –
返信いただきありがとうございます、私は試してみました。ただし、このテンプレートを2つの異なるノードに追加することが可能かどうかを尋ねる必要があります。つまり、2つのdiffノードに対して同じロジックをもう一度コピーしたくないということです。それは大きな助けになるでしょう。 –
あなたは大きな小数点を持っていませんが、XSLTではサポートされていない形式の日付を表す値を持つ要素なので、XSLT 2.0 値に変換してからformat-date
(https://www.w3.org/TR/xslt20/#date-time-examples):
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0">
<xsl:template match="DATE">
<xsl:copy>
<xsl:value-of
select="
format-date(xs:date(
concat(substring(., 1, 4), '-', substring(., 5, 2), '-', substring(., 7, 2))), '[D01] [MN,*-3] [Y0001]')"
/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
あなたがXSLT2.0を使用することはできますか? –
私はXSLT1.0を使用しています –