Subject: [xsl] how to make a log file in XSLT? From: "Jean-Luc Chevillard jeanluc.chevillard@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Sun, 12 Mar 2023 20:11:34 -0000 |
Dear list members, I have been wondering for a long time whether there was a method for automatically recording some elements of information every time I run a given script. As a minimum example, I would start with an empty file +++++++++++++++ <?xml version="1.0" encoding="UTF-8"?> <log> </log> +++++++++++++++++++++++ After running the script once, the file would become +++++++++++++++ <?xml version="1.0" encoding="UTF-8"?> <log> <entry>[2023-03-12 (19:53)]</entry> </log> +++++++++++++++++++++++ After running the script a second time, one hour later, the file would become +++++++++++++++ <?xml version="1.0" encoding="UTF-8"?> <log> <entry>[2023-03-12 (20:53)]</entry> <entry>[2023-03-12 (19:53)]</entry> </log> +++++++++++++++++++++++ I have just tried doing this by applying the script at the bottom of this message (in which "copy.xslt" is the identity transform) to a base file, but as I expected, I obtained an error message stating: System ID: C:\JLC\XML_tests\cEnAvaraiyam\log_book_experiment.xslt Scenario: 4a_log_experiment XML file: C:\JLC\XML_tests\cEnAvaraiyam\cEnA_MSS_rectangles_chart.xml XSL file: C:\JLC\XML_tests\cEnAvaraiyam\log_book_experiment.xslt Engine name: Saxon-PE 11.4 Severity: fatal Problem ID: XTRE1500 Description: Cannot read a document that was written during the same transformation: file:/C:/JLC/XML_tests/cEnAvaraiyam/experimental_log_book.xml Start location: 17:63 Length: 1 URL: http://www.w3.org/TR/xslt20/#err-XTRE1500 Is there a method for obtaining the desired result by using XSLT? Thanks for your answers -- Jean-Luc ++++++++++++++++++++++++++++ log_book_experiment.xslt ++++++++++++++++++++++++++++ <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0"> <xsl:import href="copy.xslt"/> <xsl:output method="xml" encoding="UTF-8" indent="yes"/> <xsl:variable name="TIME_STAMP" select="concat('[',format-date(current-date(), '[Y]-[M02]-[D02]'), ' (', format-time(current-time(), '[H]:[m]'), ')]')"/> <xsl:variable name="Log_file_name" select="'experimental_log_book.xml'"/> <xsl:variable name="current_log_content" select="document($Log_file_name)"/> <xsl:variable name="new_log_content"> <log> <entry><xsl:value-of select="$TIME_STAMP"/></entry> <xsl:for-each select="$current_log_content//entry"> <xsl:copy-of select="."/> </xsl:for-each> </log> </xsl:variable> <xsl:template match="/"> <xsl:result-document href="{$Log_file_name}"> <xsl:copy-of select="$new_log_content"></xsl:copy-of> </xsl:result-document> <xsl:apply-templates select="root"/> </xsl:template> </xsl:stylesheet> +++++++++++++++++++++++++++++++++
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Looking for a cleaner way, Chris Papademetrious | Thread | Re: [xsl] how to make a log file in, Martin Honnen martin |
Re: [xsl] having a template remembe, Chris Papademetrious | Date | Re: [xsl] how to make a log file in, Martin Honnen martin |
Month |