0

xslt 変換を使用して、Apache FOP ライブラリを介して Java オブジェクトを pdf にフォーマットしています。特に、オブジェクトのフィールドである java.util.Date を DD/MM/YYYY 形式にフォーマットしたいと考えています。組み込み関数「format-dateTime」を使用してフォーマットできるようにするために、xslt バージョンを 2.0 に設定し、変換プロセッサを saxon-8.7 に切り替えました。これは、xalan がバージョン 2.0 をサポートしていなかったためです。次に、次のように xslt に日付フォーマット命令を追加しました。 :

    Value date: <xsl:value-of select="format-dateTime(valueDate, '[D01]/[M01]/[Y0001]') " />

変換を開始する前に、Date フィールドを stdout に出力して、入力オブジェクトで正しく値が設定されていることを確認しました。

valueDate: Thu Jan 01 01:00:00 CET 1970

そして、それは私が期待したものです。

しかし、xsl 変換後の出力テキストには、(正しくフォーマットされた) 日付の前に望ましくない「言語」情報が表示されます。

[Language: en]01/01/1970

誰かが理由を知っていますか?

4

1 に答える 1

0

なぜSaxon 8.7を選んだのですか? これは非常に古いリリースで、実際には 2007 年 1 月の XSLT 2.0 勧告よりも前のものです。現在のリリースは 9.5 です。

より新しいリリースを使用すると、これがなくなることがわかると思います。ただし、Java 構成に、Saxon がサポートしていない言語であるデフォルトのロケールがある場合は、依然として発生する可能性があります。(このメッセージは、Saxon が、あなたが要求した言語ではないにもかかわらず、日付を英語で出力することを選択したことを示しています。これは暗黙的にあなたの既定の言語です)。

最新のリリースに移行しても問題が解決しない場合は、format-date の言語引数を文字列「en」に設定してみてください。

于 2013-04-30T14:35:39.670 に答える