Subject: Re: [xsl] output the result of the transformation twice, indented and not indented, without duplicating the code|
From: "G. Ken Holman g.ken.holman@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Mon, 23 May 2022 19:07:39 -0000
On 23.05.2022 20:39, Wolfhart Totschnig wolfhart.totschnig@xxxxxxxxxxx wrote:Dear list,
I have an XSL stylesheet that produces a large XML document. I would like to output the XML document twice, once indented (for human readability) and once not indented (for faster access by other scripts). I am wondering whether this can be done from within a single stylesheet.
In order to achieve what I want, I could, of course, produce two versions of the stylesheet, one with <xsl:output indent="yes"/> and the other with <xsl:output indent="no"/>, and then run them consecutively. The disadvantage of doing that would be that, if I later want to change the stylesheet, I would have to make the changes twice, which, apart from the additional effort, would be a possible source of errors.
I guess that I could achieve what I want from within a single stylesheet with <xsl:result-document>. But in that case, if I understand correctly, I would have to copy the entire code of the stylesheet into <xsl:result-document>. So the code would, again, be duplicated.
So my question is this: Is there a way to obtain the two versions of the XML document (indented and not indented) without duplicating the code?
<xsl:result-document href="result1.xml" indent="no">
<xsl:result-document href="result2.xml" indent="yes">
where ... is your original code (you could also xsl:import it) do what you want?
-- Contact info, blog, articles, etc. http://www.CraneSoftwrights.com/s/ | Check our site for free XML, XSLT, XSL-FO and UBL developer resources | Streaming hands-on XSLT/XPath 2 training class @US$125 (5 hours free) | Essays (UBL, XML, etc.) http://www.linkedin.com/today/author/gkholman |