[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: output the result of the transformation twice, in

Subject: Re: 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
Re:  output the result of the transformation twice
Martin, I would suggest a slight change to your code:

<xsl:next-match/>

... rather than:

<xsl:apply-templates/>

... and when the heavy-lifting code is not being imported, then put a priority="1000" on the suggested match.

That will allow Wolfhart's stylesheet also to support a template rule for the root node.

I'm not sure such would be obvious to a new user, so I thought I would mention it for the archives.

I hope this helps.

. . . . . Ken

At 2022-05-23 18:50 +0000, Martin Honnen martin.honnen@xxxxxx wrote:
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?


Doesn't


<xsl:template match="/">

<xsl:result-document href="result1.xml" indent="no">

<xsl:apply-templates/>

</xsl:result-document>

<xsl:result-document href="result2.xml" indent="yes">

<xsl:apply-templates/>

</xsl:result-document>

</xsl:template>

...


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 |

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.