Un programme que nous utilisons dans mon bureau exporte des rapports en traduisant un fichier XML qu'il exporte avec un fichier XSLT en XHTML. Je réécris le XSLT pour modifier le formatage et ajouter plus d'informations à partir du fichier XML source.
J'aimerais inclure la date de création du fichier dans le rapport final. Mais la date / heure actuelle n'est pas incluse dans le fichier XML d'origine, et je n'ai aucun contrôle sur la façon dont le fichier XML est créé. Il ne semble pas y avoir de fonctions de date intégrées dans XSLT qui renverront la date actuelle.
Quelqu'un a-t-il une idée de la façon dont je pourrais être en mesure d'inclure la date actuelle lors de ma transformation XSLT?
Réponses:
XSLT 2
Les fonctions de date sont disponibles nativement, telles que:
Il y a aussi
current-date()
etcurrent-time()
.XSLT 1
Utilisez le package d'extension de date et d'heure EXSLT.
date.xsl
à l'emplacement de vos fichiers XSL.date.xsl
.Par exemple:
la source
Pour l'analyseur MSXML, essayez ceci:
Lisez également les scripts de feuille de style XSLT à l'aide de msxsl: script et l' extension de XSLT avec JScript, C # et Visual Basic .NET
la source
Contrôlez-vous l'exécution de la transformation? Si tel est le cas, vous pouvez transmettre la date actuelle à la XSL et utiliser $ current-date depuis l'intérieur de votre XSL. Voici comment vous déclarez le paramètre entrant, mais sachant comment vous exécutez la transformation, je ne peux pas vous dire comment transmettre la valeur.
Par exemple, à partir du script bash, utilisez:
Ensuite, dans le xsl, vous pouvez utiliser:
la source
xsltproc --stringparam current-date `date +%Y-%m-%d` -o output.html path-to.xsl path-to.xml
. Certains systèmes prennent également des paramètres comme$param=value
, donc dans ce cas$current-date=`date +%Y-%m-%d`
quelque part. Ou sinon, cherchez des moyens de spécifier des paramètres dans le processeur XSLT que vous utilisez.la source
Réponse tardive, mais ma solution fonctionne dans Eclipse XSLT. Eclipse utilise XSLT 1 au moment de la rédaction de cet article. Vous pouvez installer un moteur XSLT 2 comme Saxon. Vous pouvez également utiliser la solution XSLT 1 ci-dessous pour insérer la date et l'heure actuelles.
Cela appellera la classe Data de Java pour afficher la date. Cela ne fonctionnera que si vous mettez également la définition "java:" suivante dans votre
<xsl:stylesheet>
balise.J'espère que cela aide quelqu'un. Cette réponse simple a été difficile à trouver pour moi.
la source
reference: Formatage des dates et des heures à l'aide de XSLT 2.0 et XPath
la source