Un programa que utilizamos en mi oficina exporta informes traduciendo un archivo XML que exporta con un archivo XSLT a XHTML. Estoy reescribiendo el XSLT para cambiar el formato y agregar más información del archivo XML de origen.
Me gustaría incluir la fecha en que se creó el archivo en el informe final. Pero la fecha / hora actual no está incluida en el archivo XML original, ni tengo ningún control sobre cómo se crea el archivo XML. No parece haber ninguna función de fecha incorporada en XSLT que devuelva la fecha actual.
¿Alguien tiene alguna idea de cómo podría incluir la fecha actual durante mi transformación XSLT?
Respuestas:
XSLT 2
Las funciones de fecha están disponibles de forma nativa, como:
También hay
current-date()
ycurrent-time()
.XSLT 1
Utilice el paquete de extensión de fecha y hora EXSLT.
date.xsl
a la ubicación de sus archivos XSL.date.xsl
.Por ejemplo:
fuente
Para el analizador MSXML, intente esto:
Lea también Scripts de hojas de estilo XSLT con msxsl: script y Ampliación de XSLT con JScript, C # y Visual Basic .NET
fuente
¿Tiene control sobre la ejecución de la transformación? Si es así, puede pasar la fecha actual al XSL y usar $ current-date desde dentro de su XSL. A continuación se muestra cómo declara el parámetro entrante, pero al saber cómo está ejecutando la transformación, no puedo decirle cómo pasar el valor.
Por ejemplo, desde el script bash, use:
Luego, en el xsl puedes usar:
fuente
xsltproc --stringparam current-date `date +%Y-%m-%d` -o output.html path-to.xsl path-to.xml
. Algunos sistemas también toman parámetros como$param=value
, en ese caso, en$current-date=`date +%Y-%m-%d`
algún lugar. O busque formas de especificar parámetros en cualquier procesador XSLT que esté usando.fuente
Respuesta tardía, pero mi solución funciona en Eclipse XSLT. Eclipse usa XSLT 1 al momento de escribir este artículo. Puede instalar un motor XSLT 2 como Saxon. O puede usar la solución XSLT 1 a continuación para insertar la fecha y hora actuales.
Esto llamará a la clase Data de Java para generar la fecha. No funcionará a menos que también ponga la siguiente definición "java:" en su
<xsl:stylesheet>
etiqueta.Espero que ayude a alguien. Esta simple respuesta fue difícil de encontrar para mí.
fuente
referencia: Formateo de fechas y horas con XSLT 2.0 y XPath
fuente