Program yang kami gunakan di kantor saya mengekspor laporan dengan menerjemahkan file XML yang diekspor dengan file XSLT ke XHTML. Saya menulis ulang XSLT untuk mengubah pemformatan dan menambahkan lebih banyak informasi dari File XML sumber.
Saya ingin menyertakan tanggal pembuatan file di laporan akhir. Tetapi tanggal / waktu saat ini tidak disertakan dalam file XML asli, saya juga tidak memiliki kendali atas bagaimana file XML dibuat. Tampaknya tidak ada fungsi tanggal yang membangun XSLT yang akan mengembalikan tanggal sekarang.
Apakah ada yang tahu bagaimana saya bisa memasukkan tanggal saat ini selama transformasi XSLT saya?
Jawaban:
XSLT 2
Fungsi tanggal tersedia secara native, seperti:
Ada juga
current-date()
dancurrent-time()
.XSLT 1
Gunakan paket ekstensi tanggal dan waktu EXSLT.
date.xsl
ke lokasi file XSL Anda.date.xsl
.Sebagai contoh:
sumber
Untuk parser MSXML, coba ini:
Baca juga XSLT Stylesheet Scripting menggunakan msxsl: script dan Memperluas XSLT dengan JScript, C #, dan Visual Basic .NET
sumber
Apakah Anda memiliki kendali untuk menjalankan transformasi? Jika demikian, Anda dapat meneruskan tanggal saat ini ke XSL dan menggunakan $ tanggal saat ini dari dalam XSL Anda. Di bawah ini adalah cara Anda mendeklarasikan parameter yang masuk, tetapi dengan mengetahui bagaimana Anda menjalankan transformasi, saya tidak dapat memberi tahu Anda cara meneruskan nilainya.
Misalnya, dari skrip bash, gunakan:
Kemudian, di xsl Anda dapat menggunakan:
sumber
xsltproc --stringparam current-date `date +%Y-%m-%d` -o output.html path-to.xsl path-to.xml
. Beberapa sistem juga hanya mengambil parameter sebagai$param=value
, jadi dalam hal ini di$current-date=`date +%Y-%m-%d`
suatu tempat. Atau cari cara untuk menentukan parameter dalam prosesor XSLT apa pun yang Anda gunakan.sumber
Jawaban terlambat, tetapi solusi saya berfungsi di Eclipse XSLT. Eclipse menggunakan XSLT 1 pada saat penulisan ini. Anda dapat memasang mesin XSLT 2 seperti Saxon. Atau Anda dapat menggunakan solusi XSLT 1 di bawah ini untuk memasukkan tanggal dan waktu saat ini.
Ini akan memanggil kelas Data Java untuk menampilkan tanggal. Ini tidak akan bekerja kecuali jika Anda juga menempatkan definisi "java:" berikut di
<xsl:stylesheet>
tag Anda .Saya harap itu membantu seseorang. Jawaban sederhana ini sulit ditemukan bagi saya.
sumber
referensi: Memformat Tanggal dan Waktu menggunakan XSLT 2.0 dan XPath
sumber