Solved

Parsing an XML file in ASP - error

Posted on 2009-04-02
3
805 Views
Last Modified: 2012-05-06
I'm trying to parse a XML file in ASP. I have provided my code and I get the following error msg:

"XML parse error: Errorcode: -1072896682 Reason: Invalid at the top level of the document. Line: 1 Filepos: 0 URL: "

I have tried 3 different XML files and all get the same error and they all have a top level.

I can't provide the XML files as the information is confidential but I can give a sample of the structure:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Root>
  <node1>
    <node1_1>text</node1_1>  
    <node1_2>text</node1_2>  
  </node1>
</Root>


Where could my problem be? Is it this line?
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

Any help appreciated.

function XML_OpenXMLFile( byRef oFSO, byRef sFilePath, bUnicode, byRef oXMLDoc, byRef sErrorMessage )
 
	dim sPhysicalPath, oTS, bHasFSO, sXML
	
	XML_OpenXMLFile = false
	
	bHasFSO = isObject( oFSO )
	
	if not bHasFSO then set oFSO = Server.CreateObject( "Scripting.FileSystemObject" )
 
	sPhysicalPath = PhysicalPath( sFilePath )
	if not oFSO.FileExists( sPhysicalPath ) then sErrorMessage = "The file """ & sFilePath & """ (" & sPhysicalPath & ") is not found!" : exit function
 
	set oTS = oFSO.OpenTextFile( sPhysicalPath, 1, false, Conditional( bUnicode, -1, 0 ) )
	sXML = oTS.ReadAll()
	oTS.Close()
	set oTS = nothing
 
	if not bHasFSO then set oFSO = nothing
	
	set oXMLDoc = Server.CreateObject("MSXML2.DOMDocument")
	oXMLDoc.async = false
	oXMLDoc.resolveExternals = false
	oXMLDoc.preserveWhiteSpace = true
	oXMLDoc.loadXML sXML
 
	if oXMLDoc.parseError.errorCode <> 0 then
		sErrorMessage = "Error parsing original XML file: " & XML_GetParseError( oXMLDoc )
		exit function
	end if
	
	XML_OpenXMLFile = true
end function

Open in new window

0
Comment
Question by:mc_101
  • 2
3 Comments
 
LVL 28

Expert Comment

by:sybe
ID: 24047825
I believe that node-names should be all lowercase. So in stead of <Root> you'd need <root>
0
 

Author Comment

by:mc_101
ID: 24047869
Doesn't change anything, still the same problem even with all nodes being lower case.
0
 
LVL 28

Accepted Solution

by:
sybe earned 500 total points
ID: 24047900
But why don't you let the oXMLDoc open the file directly? No need to use FSO. Maybe the FSO part is messing something up

<%
Set oXMLDoc = Server.CreateObject("MSXML2.DOMDocument")
oXMLDoc.load(sFilePath)
%>

Open in new window

0

Featured Post

3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

Question has a verified solution.

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

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/…
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.
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

777 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