Re: [xsl] Changing encoding using a parameter

Subject: Re: [xsl] Changing encoding using a parameter
From: Johannes Döbler <jd@xxxxxxxxxxxxxx>
Date: Wed, 28 Mar 2001 22:47:01 +0200
Matt,

there is no direct way to do this in XSLT 1.0.

Possible solutions are:
a) in XSLT 1.1 the attributes of the xsl:output element are attribute value templates and therefore you could write:


  <xsl:output encoding="{$encoding}"/>
  <xsl:param name="encoding" select="'UTF-8'"/>

and pass the real encoding to the stylesheet as a parameter.

b) you could use SUN's TrAX API which lets you override the output settings at runtime
c) you could use a processor with a suitable extension


Solution a) requires a XSLT 1.1 processor (like my jd.xslt ;-)
b) requires a TrAX capable processor (like Saxon, Xalan, jd.xslt). But no processor lets you set it directly from the commandline so you have to invoke the transformation from a java program.
c) (don't know any processors capable of that)


Johannes


At 12:55 28.03.01 -0600, you wrote:
I want to change the encoding of an XML file based on a parameter that I
pass into the XSL.  How would I go about doing that?  I know how to pass in
the parameter, but I need the encoding to be changed based on the
parameter.

<?xml version="1.0" encoding="UTF-8"?>
<People>
     <Person>
          <FirstName>Matt</FirstName>
          <LastName>Youngblut</LastName>
     </Person>
</People>

-----------------------------------------------------------------------
<?xml version="1.0"?>
<xsl:transform version="1.0" xmlns:xsl
="http://www.w3.org/1999/XSL/Transform";>
     <xsl:param name="PARAMETER">UTF-8</xsl:param>

     <!-- I need to plug in the encoding change somewhere.  But WHERE, and
HOW? -->

     <xsl:template match="/">
          <xsl:copy-of select="."/>
     </xsl:template>
</xsl:transform>

Thanks in advance,
     Matt Youngblut


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list


Current Thread