Ein Programm, das wir in meinem Büro verwenden, exportiert Berichte, indem es eine exportierte XML-Datei mit einer XSLT-Datei in XHTML übersetzt. Ich schreibe das XSLT neu, um die Formatierung zu ändern und weitere Informationen aus der XML-Quelldatei hinzuzufügen.
Ich möchte das Erstellungsdatum der Datei in den Abschlussbericht aufnehmen. Das aktuelle Datum und die aktuelle Uhrzeit sind jedoch weder in der ursprünglichen XML-Datei enthalten, noch habe ich eine Kontrolle darüber, wie die XML-Datei erstellt wird. In XSLT scheinen keine Datumsfunktionen eingebaut zu sein, die das aktuelle Datum zurückgeben.
Hat jemand eine Idee, wie ich das aktuelle Datum während meiner XSLT-Transformation einbeziehen kann?
Antworten:
XSLT 2
Datumsfunktionen sind nativ verfügbar, z.
Es gibt auch
current-date()
undcurrent-time()
.XSLT 1
Verwenden Sie das EXSLT-Erweiterungspaket für Datum und Uhrzeit.
date.xsl
zum Speicherort Ihrer XSL-Dateien.date.xsl
.Beispielsweise:
quelle
Versuchen Sie für MSXML-Parser Folgendes:
Lesen Sie auch XSLT Stylesheet Scripting mit msxsl: script und Erweitern von XSLT mit JScript, C # und Visual Basic .NET
quelle
Haben Sie die Kontrolle über die Ausführung der Transformation? In diesem Fall können Sie das aktuelle Datum an die XSL übergeben und $ current-date in Ihrer XSL verwenden. Im Folgenden wird beschrieben, wie Sie den eingehenden Parameter deklarieren. Wenn Sie jedoch wissen, wie Sie die Transformation ausführen, kann ich Ihnen nicht sagen, wie Sie den Wert übergeben sollen.
Verwenden Sie beispielsweise im Bash-Skript Folgendes:
Dann können Sie in der xsl verwenden:
quelle
xsltproc --stringparam current-date `date +%Y-%m-%d` -o output.html path-to.xsl path-to.xml
. Einige Systeme nehmen auch nur Parameter als$param=value
, also in diesem Fall$current-date=`date +%Y-%m-%d`
irgendwo. Oder suchen Sie auf andere Weise nach Möglichkeiten, Parameter in dem von Ihnen verwendeten XSLT-Prozessor anzugeben.quelle
Späte Antwort, aber meine Lösung funktioniert in Eclipse XSLT. Eclipse verwendet zum Zeitpunkt dieses Schreibens XSLT 1. Sie können eine XSLT 2-Engine wie Saxon installieren. Oder Sie können die unten stehende XSLT 1-Lösung verwenden, um das aktuelle Datum und die aktuelle Uhrzeit einzufügen.
Dadurch wird die Datenklasse von Java aufgerufen, um das Datum auszugeben. Es funktioniert nur, wenn Sie auch die folgende "Java:" - Definition in Ihr
<xsl:stylesheet>
Tag einfügen.Ich hoffe das hilft jemandem. Diese einfache Antwort war für mich schwer zu finden.
quelle
Referenz: Formatieren von Daten und Zeiten mit XSLT 2.0 und XPath
quelle