Error reading XML file

I am trying to read and display the contents of an XML file. (I want to restructure the output too using Javascript but I can't get past this first hurdle)

This is the error:
=============================================
Response object error 'ASP 0185 : 80020003'

Missing Default Property

/displayxml.asp, line 30

A default property was not found for the object.
=============================================

Here is the Code:
=============================================
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%>
<%
  var xmlDoc = new ActiveXObject("MSXML.DOMDocument");
  var sourceFile = Server.MapPath("xml_file.xml");  
 
  function loadXML(xmlFile)
  {
   xmlDoc.async="false";
   xmlDoc.onreadystatechange=verify;
   xmlDoc.loadXML(xmlFile);
   xmlObj=xmlDoc.documentElement;
  }

function verify()
{
 // 0 Object is not initialized
 // 1 Loading object is loading data
 // 2 Loaded object has loaded data
 // 3 Data from object can be worked with
 // 4 Object completely initialized
 if (xmlDoc.readyState != 4);
 {
   return false;
 }
}

loadXML(sourceFile);
Response.ContentType = "text/html";

Response.Write(xmlObj); //This is line 30
%>

I know that I should use Response.ContentType = "text/xml"; but I need to get past this ASP error first which is only displayed using text/html

Can anyone spot the problem ?
LVL 1
Milkybar-kidAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
ThogekConnect With a Mentor Commented:
Which suggests that xmlObj is not being correctly populated.  I'd suggest two things:

[1]
To be safe, you should declare xmlObj outside of the functions, just to ensure that xmlObj is a global (not method) variable.  Something like

    var xmlDoc = new ActiveXObject("MSXML.DOMDocument");
    var sourceFile = Server.MapPath("xml_file.xml");  
    var xmlObj = null;  // declared as global-scope variable

    function loadXML(xmlFile)
    {

[2]
The DOMDocument.loadXML expects to be passed a string containing XML-formatted data.  If you want to load the XML contained within a file whose pathname you will pass to the function, use the load method instead.  I.e.,

    function loadXML(xmlFile)
    {
        xmlDoc.async="false";
        xmlDoc.onreadystatechange=verify;
        xmlDoc.load(xmlFile);  // load XML from file
        xmlObj=xmlDoc.documentElement;
    }

DOMDocument.load: http://msdn.microsoft.com/library/en-us/xmlsdk/html/xmmthload.asp
DOMDocument.loadXML: http://msdn.microsoft.com/library/en-us/xmlsdk/html/xmmthloadxml.asp
0
 
ThogekCommented:
Try
    Response.Write(xmlObj.xml);
0
 
Milkybar-kidAuthor Commented:
I had already tried that. I get the message

Microsoft JScript runtime error '800a01a8'

Object required

/displayxml.asp, line 30
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.