File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes XML and Related Technologies and the fly likes Rough Start Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Engineering » XML and Related Technologies
Bookmark "Rough Start" Watch "Rough Start" New topic
Author

Rough Start

Meadowlark Bradsher
Ranch Hand

Joined: Jan 23, 2001
Posts: 109
Hello good folks,
I just bought Inside XML, kind of on Ajith's "kind-of" recommendation, to help me prepare for IBM's XML certification (see http://www.javaranch.com/ubb/Forum31/HTML/000367.html ). Well the first programming assignment, a 15 minute IE 5+ javascript loading and reading of a simple XML document, is returning a null object instead of the root element.
This is the HTML & Jscript:
<HTML>
<HEAD>
<TITLE>
Reading XML element values
</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function readXMLDocument()
{
var xmldoc, meetingsNode, meetingNode, peopleNode
var first_nameNode, last_nameNode, outputText
xmldoc = new ActiveXObject("Microsoft.XMLDOM")
xmldoc.load("meetings.xml")

meetingsNode = xmldoc.documentElement
meetingNode = meetingsNode.firstChild
peopleNode = meetingNode.lastChild
personNode = peopleNode.lastChild
first_nameNode = personNode.firstChild
last_nameNode = first_nameNode.nextSibling
outputText = "Third name: " +
first_nameNode.firstChild.nodeValue + ' '
+ last_nameNode.firstChild.nodeValue
messageDIV.innerHTML=outputText
}
</SCRIPT>
</HEAD>
<BODY>
<CENTER>
<H1>
Reading XML element values
</H1>
<INPUT TYPE="BUTTON" VALUE="Get the name of the third person"
ONCLICK="readXMLDocument()">
<P>
<DIV ID="messageDIV"></DIV>
</CENTER>
</BODY>
</HTML>
and "meetings.xml" is as follows:
<?xml version="1.0"?>
<MEETINGS>
<MEETING TYPE="informal">
<MEETING_TITLE>XML In The Real World</MEETING_TITLE>
<MEETING_NUMBER>2079</MEETING_NUMBER>
<SUBJECT>XML</SUBJECT>
<DATE>6/1/2002</DATE>
<PEOPLE>
<PERSON ATTENDENCE="present">
<FIRST_NAME>Edward</FIRST_NAME>
<LAST_NAME>Samson</LAST_NAME>
</PERSON>
<PERSON ATTENDENCE="absent">
<FIRST_NAME>Ernestine</FIRST_NAME>
<LAST_NAME>Johnson</LAST_NAME>
</PERSON>
<PERSON ATTENDENCE="present">
<FIRST_NAME>Betty</FIRST_NAME>
<LAST_NAME>Richardson</LAST_NAME>
</PERSON>
</PEOPLE>
</MEETING>
</MEETINGS>
On the first document "meetings.xml" is in the same directory but "meetingsNode = xmldoc.documentElement" assigns meetingsNode to null and the following line thus creates an error. My best guess is that either the book has an error not mentioned in the errata or I am missing something fundamental and assumed.
Does anyone have any insights?
Meadowlark Bradsher


Meadowlark Bradsher
SCJ2P, IBM XML V1, Series 7/63
Meadowlark Bradsher
Ranch Hand

Joined: Jan 23, 2001
Posts: 109
Originally posted by Meadowlark Bradsher:

This is the HTML & Jscript:
<HTML>
<HEAD>
<TITLE>
Reading XML element values
</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function readXMLDocument()
{
var xmldoc, meetingsNode, meetingNode, peopleNode
var first_nameNode, last_nameNode, outputText
xmldoc = new ActiveXObject("Microsoft.XMLDOM")
xmldoc.load("meetings.xml")

meetingsNode = xmldoc.documentElement
meetingNode = meetingsNode.firstChild
peopleNode = meetingNode.lastChild
personNode = peopleNode.lastChild
first_nameNode = personNode.firstChild
last_nameNode = first_nameNode.nextSibling
outputText = "Third name: " +
first_nameNode.firstChild.nodeValue + ' '
+ last_nameNode.firstChild.nodeValue
messageDIV.innerHTML=outputText
}
</SCRIPT>
</HEAD>
<BODY>
<CENTER>
<H1>
Reading XML element values
</H1>
<INPUT TYPE="BUTTON" VALUE="Get the name of the third person"
ONCLICK="readXMLDocument()">
<P>
<DIV ID="messageDIV"></DIV>
</CENTER>
</BODY>
</HTML>


I accidentally discovered a solution. Before I "loaded" the document I set the ActiveXObject's "async" property to "false". That's a Microsoft DOMDocument object(what Microsoft calls the Document object) property not a W3C recommended one, by the way. I don't know why that made a difference, though.
-med
Mapraputa Is
Leverager of our synergies
Sheriff

Joined: Aug 26, 2000
Posts: 10065
Probably because your script tried to access XML nodes before the whole XML document was loaded...


Uncontrolled vocabularies
"I try my best to make *all* my posts nice, even when I feel upset" -- Philippe Maquet
Meadowlark Bradsher
Ranch Hand

Joined: Jan 23, 2001
Posts: 109
That was my assumption too.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Rough Start
 
Similar Threads
how to open xml file into html page
Loading xml in JavaScript Fails
XML Scripting is not working
Loading xml in Javascript fails
adding nodes to an XML file