Hier ist eine Demonstration, wie man das in XSLT 2.0 macht:
%Vor%Wenn diese Transformation auf ein beliebiges XML-Dokument angewendet wird (nicht verwendet), wird das gewünschte, korrekte Ergebnis erzeugt :
%Vor%Ja, mit XSLT 2.0 ist es möglich und sehr einfach.
Es gibt viele Funktionen für Datum / Uhrzeit / Dauer in XPATH 2.0 , die Teil von XSLT 2.0 sind.
Dieses Beispiel subtrahiert 1 Tag vom Datum 2010-01-01 bis zum 31.12.2009:
%Vor%Nun, XSLT kann Strings teilen und Zahlen parsen, also ja, es wäre "möglich".
Es wäre jedoch viel einfacher und effizienter, wenn Sie Erweiterungsfunktionen verwenden und diese in einer anderen Sprache implementieren könnten. Ob und wie das funktioniert, hängt jedoch von der verwendeten XSLT Engine ab.
EXSLT kann alles haben, was Sie brauchen: Ссылка
Ich kann sehen, dass alle erwähnten Lösungen für XSLT 2.0 sind. Ich habe eine ähnliche Lösung für XSLT 1.0 mit EXSLT date: add
Beispiel: Beachten Sie, dass die Anzahl der zu subtrahierenden Tage 365 ist und wir sie als Standardstartdatum benötigen. In diesem Fall müssen wir die Dauer 365 Tage im Format xs: dayTimeDuration angeben, d. H. "-P365D".
Hier finden Sie den Code.
%Vor%