Solved

XSLT and DOCTYPE not working in IE

Posted on 2006-06-23
3
1,064 Views
Last Modified: 2008-01-16
I have created a simple XSL->XML solution (see below). The problem is I cannot get IE to see the DOCTYPE setting. I want the HTML 4.01 Transitional doctype to come through or else IE ignores my positioning I have setup in the css file. It works fine in FireFox but not in IE. In IE the page is displayed but the positioning information is ignored. (This is when I access the file http://server/test.xml)

I also wrote an ASP script to return the page as XHTML - this has the same result as above - but I did notice the file has the header shown below when it comes down (this is the file generated by the asp script - see below for code). If I remove the first line of the returned XHTML file (<?xml version ... ?>) save the file to the webserver and load it all is well.

Any ideas - I did spend some time googling this - but did not really find much - any ideas

[Returned header from test.asp]

<?xml version="1.0" encoding="UTF-16"?>   <-- This appears to be the offending item
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

[TEST.XML]
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<stuff>
<config>
 ...
</config>
[END TEST.XML]
The XSL file

[TEST.XSL]
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl=
  "http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"
  doctype-system="http://www.w3.org/TR/html4/loose.dtd"
  doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" indent="yes" />
<xsl:template match="/">
<html>
<head>
  ...
  <link type="text/css" rel="stylesheet" href="css/layout.css" />
</head>
<body>
 ....
</body>
[END TEST.XSL]

[TEST.ASP]
<%
'Load XML
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("test.xml"))

'Load XSL
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("test.xsl"))

'Transform file
Response.Write(xml.transformNode(xsl))
%>
[END TEST.ASP]
0
Comment
Question by:Julian Hansen
  • 2
3 Comments
 
LVL 15

Accepted Solution

by:
mshogren earned 500 total points
ID: 16971310
Hi,

I think you need to change the output method from XML to HTML.  You have
<xsl:output method="xml"
which should be
<xsl:output method="html"
0
 
LVL 53

Author Comment

by:Julian Hansen
ID: 16974462
Thanks Michael

I tried that but did not seem to make a difference - only tried once though - will keep trying different options and report back.
0
 
LVL 53

Author Comment

by:Julian Hansen
ID: 16974527
Ok - that did the trick

All I had to do was change

<xsl:output method="xml" ...

To

<xsl:output method="html" ...

And remove the

<?xml version="1.0" encoding="ISO-8859-1"?>

From the top of the XML file and it all works very nicely ... guess next time I should read the technical specs.

Thanks for the response
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Browsing the questions asked to the Experts of this forum, you will be amazed to see how many times people are headaching about monster regular expressions (regex) to select that specific part of some HTML or XML file they want to extract. The examp…
I was working on a PowerPoint add-in the other day and a client asked me "can you implement a feature which processes a chart when it's pasted into a slide from another deck?". It got me wondering how to hook into built-in ribbon events in Office.
This Micro Tutorial hows how you can integrate  Mac OSX to a Windows Active Directory Domain. Apple has made it easy to allow users to bind their macs to a windows domain with relative ease. The following video show how to bind OSX Mavericks to …
This tutorial gives a high-level tour of the interface of Marketo (a marketing automation tool to help businesses track and engage prospective customers and drive them to purchase). You will see the main areas including Marketing Activities, Design …

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now