0

http://www.exslt.org/date/functions/difference/index.htmlで提供されているデフォルトのdate:difference EXSLTテンプレートを使用すると、いくつかの問題が発生します。問題を絞り込んで、ソースであるXSLプロセッサを見つけることができました。問題は、私がアクセスできるXSLTプロセッサが、「2011-02-28T10:00:00」と「2011-03-01T10:00:00」の日付の違いが-P27DT9Hであると言っていることです。違いは実際にはPT15Hです(この期間は、XalanやSaxonなどの他のXSLTプロセッサが正しく計算するものです-Oxygen XML Editorでテストされています)。

XSLテンプレート(date:difference)を編集して、XSLプロセッサで正しく機能させる方法はありますか?私が使用しているプロセッサはJAXP1.3だと思います。入手可能なSAPMII12.1のドキュメントから理解するのは少し難しいです。

注意:別のXSLTプロセッサをインストールすることはできません:)

編集:さらなる調査によると、JAXPはXalanを実行しています(system-property('xsl:vendor')は "Apache Software Foundation(Xalan XSLTC)"を返します)

編集:問題の原因は特定されましたが(!)、許容できる解決策を見つけることができません。date:differenceテンプレートは、「document('')/ * / ...」を使用して、xsl-documentからローカルにデータセットを取得します。「document('')」トリックは私のプロセッサでは機能しません。ローカルデータセットを変数に追加し、exslt:node-set()を使用してノードセットを作成しようとしましたが、すでにDTMの問題が発生しており、そのメソッドを追加すると、可能なデータ量が減少しますすでに以上に処理します:(

4

1 に答える 1

0

楽しみのために、これを閉じましょう:)解決策は、「構造」を変数に入れてから、exslt:node-setを使用してノードセットにすることでした。これは多くのリソースを消費しますが、非常に限られた(そして古い!)システムを使用すると、それが得られます。

于 2011-03-14T09:18:47.423 に答える