Groups | Blog | Home
all groups > inetserver asp general > june 2005 >

inetserver asp general : Im experiencing strange xml transform problems


Martin Honnen
6/28/2005 12:00:00 AM


[quoted text, click to view]


[quoted text, click to view]

Make those three lines
Set xmldoc = xmlhttp.responseXML

[quoted text, click to view]

Use
xmldoc.transformNodeToObject(xsldoc, Response)
instead.
Of course depending on what kind of content your XSL stylesheet creates
you need to set
Response.ContentType
appropriately.

[quoted text, click to view]

There are several things that can go wrong, check
xmlhttp.status
to be 200, check whether xsldoc.load return true so that you know that
the stylesheet is well-formed.

--

Martin Honnen --- MVP XML
frustratedcoder
6/28/2005 6:33:09 AM
When I call the transformnode on my xml object like this:
response.write xmlobj.transformnode(xsl) I get the actual xsl sent to
the browser.

Here is my code:

<%@LANGUAGE="VBSCRIPT"%>

<%
Dim xmlhttp, xsldoc, xmldoc
set xmlhttp = Server.CreateObject("Microsoft.XMLHTTP")
xmlhttp.open "GET", "http://some-server.com/xmlfile", false
xmlhttp.send

set xsldoc = Server.CreateObject("Microsoft.XMLDOM")
xsldoc.async = false
xsldoc.load(Server.MapPath("stylesheet.xsl"))

set xmldoc = Server.CreateObject("Microsoft.XMLDOM")
xmldoc.async = false
xmldoc.loadXML(xmlhttp.responseText)

response.write xmldoc.transformNode(xsldoc)
%>

No error message is sent back from the object, I just get the xsl if I
view the source.

I have tried to call a newer xml object but this appears to be the only
accessible to me on the server.
frustratedcoder
6/28/2005 11:09:09 PM
Thank you for the reply. I changed my code into:
Dim xmlhttp, xsldoc, xmldoc
set xmlhttp = Server.CreateObject("Microsoft.XMLHTTP")
xmlhttp.open "GET", "http://www.somesite.com/xml", false
xmlhttp.send

set xsldoc = Server.CreateObject("Microsoft.XMLDOM")
xsldoc.async = false
xsldoc.load(Server.MapPath("stylesheet.xsl"))

set xmldoc = xmlhttp.responseXML

response.ContentType = "text/html"

xmldoc.transformNodeToObject xsldoc, Response

The xsl's output method is set to html, but the result is the same: I
get the xslt when I check the source.
Martin Honnen
6/29/2005 12:00:00 AM

[quoted text, click to view]

What server is that? Old versions of MSXML as installed on Win 98 or
2000 do not support XSLT 1.0 at all, you need to have at least MSXML 3
(which is installed by IE 6) to do XSLT 1.0 transformations.



--

Martin Honnen --- MVP XML
frustratedcoder
6/29/2005 5:42:26 AM
Thank you for the reply.

The msxml2.ServerXMLHTTP is not available on the server, only xmlhttp
and xmldom are available.
Bob Barrows [MVP]
6/29/2005 7:13:06 AM
[quoted text, click to view]


You should use the "Server" version of the XMLHTTP object. Also, I usually
am a little bit more explicit in my server-side code:

set xmlhttp = Server.CreateObject("msxml2.ServerXMLHTTP")


[quoted text, click to view]

Don't create and load your "xsl" document until you have verified that you
have received something from your xmlhttp request. I am going to rearrange
things now

[quoted text, click to view]

First debugging step:

response.ContentType = "text/xml"
xmldoc.save Response
Response.End

If all looks well when you run the page, comment out the above lines. I
would still add something like:

If len(xmldoc.xml) > 0 then

[quoted text, click to view]

set xsldoc = Server.CreateObject("msxml2.DomDocument")

[quoted text, click to view]

else
response.write "No xml was returned"
end if

[quoted text, click to view]

Try "text/xml"

Also, if you have "on error resume next" anywhere, comment it out.

Bob Barrows

--
Microsoft MVP - ASP/ASP.NET
Please reply to the newsgroup. This email account is my spam trap so I
don't check it very often. If you must reply off-line, then remove the
"NO SPAM"

Bob Barrows [MVP]
6/29/2005 9:18:25 AM
[quoted text, click to view]

Sounds as if that's the issue then. Can they install the latest version of
the MSXML Parser on the server?

In the meantime, have you tried my other debugging suggestions? What result
did you get from them?

Bob Barrows
--
Microsoft MVP -- ASP/ASP.NET
Please reply to the newsgroup. The email account listed in my From
header is my spam trap, so I don't check it very often. You will get a
quicker response by posting to the newsgroup.

frustratedcoder
6/30/2005 1:23:19 AM
I called the host provider yesterday and they confirmed that this was
an error and that they would upgrade.

Thank you all for your help.
AddThis Social Bookmark Button