If you want to generate documents with non-standard encodings with server-side XSLT transformation in IIS/ASP environment, you should:
- Set the Response.Charset property to the desired character set;
- Set the Response.Codepage property to the desired code page (or use the <%@ LANGUAGE="VBScript" CODEPAGE="codepage" %> directive in your ASP script).
- Omit XML declaration from the translated text (using omit-xml-declaration=”yes” attribute in xsl:output element) and prepend the desired XML declaration in front of the translated text.
For example, the following program generates XML (or XHTML) document encoded in windows-1250 character set (codepage: 1250) …
<% Const DOMClass = "MSXML2.DOMDocument" Set XSLT = Server.CreateObject(DOMClass) Set XDoc = Server.CreateObject(DOMClass) XDoc.loadXML("<root greek='β' ee='č' />") XSLT.load(Server.MapPath("SampleXSLT.xsl")) Response.Clear Response.Charset = "windows-1250" Response.Codepage = 1250 Response.ContentType = "text/xml" Response.Write "<?xml version='1.0' encoding='windows-1250'?>" Response.Write XDoc.transformNode(XSLT) %>
… when using the following XSL transformation:
<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" omit-xml-declaration="yes" /> … rest deleted …
No comments:
Post a Comment