Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Error reading XML file

Posted on 2004-09-07
3
Medium Priority
?
352 Views
Last Modified: 2010-05-18
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 ?
0
Comment
Question by:Milkybar-kid
  • 2
3 Comments
 
LVL 15

Expert Comment

by:Thogek
ID: 12002360
Try
    Response.Write(xmlObj.xml);
0
 
LVL 1

Author Comment

by:Milkybar-kid
ID: 12003998
I had already tried that. I get the message

Microsoft JScript runtime error '800a01a8'

Object required

/displayxml.asp, line 30
0
 
LVL 15

Accepted Solution

by:
Thogek earned 2000 total points
ID: 12007751
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

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

Question has a verified solution.

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

I have helped a lot of people on EE with their coding sources and have enjoyed near about every minute of it. Sometimes it can get a little tedious but it is always a challenge and the one thing that I always say is:   The Exchange of informatio…
This demonstration started out as a follow up to some recently posted questions on the subject of logging in: http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_28634665.html and http://www.experts-exchange.com/Programming/…
This Micro Tutorial will teach you how to add a cinematic look to any film or video out there. There are very few simple steps that you will follow to do so. This will be demonstrated using Adobe Premiere Pro CS6.
We’ve all felt that sense of false security before—locking down external access to a database or component and feeling like we’ve done all we need to do to secure company data. But that feeling is fleeting. Attacks these days can happen in many w…

972 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