IXMLDOMParseError
Returns detailed information about the last parse error, including the error number, line number, character position, and a text description.
[Script]
Example
The following script example attempts to load an XML document. It then tests the errorCode property of the IXMLDOMParseError object to see if an error has occurred.
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.4.0");
xmlDoc.async = false;
xmlDoc.load("books.xml");
if (xmlDoc.parseError.errorCode != 0) {
alert("A parse error occurred.");
} else {
alert(xmlDoc.documentElement.xml);
}
[Visual Basic]
Example
The following Microsoft® Visual Basic® example attempts to load an XML document. It then tests the errorCode property of the IXMLDOMParseError object to see if an error has occurred.
Dim xmlDoc As New Msxml2.DOMDocument40
xmlDoc.async = False
xmlDoc.Load ("books.xml")
If xmlDoc.parseError.errorCode <> 0 Then
MsgBox "A parse error occurred."
Else
MsgBox xmlDoc.documentElement.xml
End If
[C/C++]
Example
The following C/C++ example reads a document with a missing end "TITLE" tag (in the second book) and displays the error.
#import "msxml4.dll"
using namespace MSXML2;
inline void TESTHR( HRESULT _hr )
{ if FAILED(_hr) _com_issue_error(_hr); }
void XMLDOMParserSample()
{
try
{
IXMLDOMDocumentPtr docPtr;
//init
TESTHR(CoInitialize(NULL));
TESTHR(docPtr.CreateInstance("Msxml2.DOMDocument.4.0"));
// load a document
_variant_t varXml("D:\\xmlSample\\xmlTest\\book.xml");
_variant_t varOut((bool)TRUE);
varOut = docPtr->load(varXml);
if ((bool)varOut == FALSE)
{
IXMLDOMParseErrorPtr errPtr = docPtr->GetparseError();
_bstr_t bstrErr(errPtr->reason);
printf("Error:\n");
printf("Code = 0x%x\n", errPtr->errorCode);
printf("Source = Line : %ld; Char : %ld\n", errPtr->line, errPtr->linepos);
printf("Error Description = %s\n", (char*)bstrErr);
}
else
{
printf("Load successful");
}
}
catch (_com_error &e)
{
printf("Error:\n");
printf("Code = %08lx\n", e.Error());
printf("Code meaning = %s\n", (char*) e.ErrorMessage());
printf("Source = %s\n", (char*) e.Source());
printf("Error Description = %s\n", (char*) e.Description());
}
catch(...)
{
printf("Unknown error!");
}
CoUninitialize();
}
Document
<?xml version='1.0'?>
<COLLECTION
xmlns:dt="urn:schemas-microsoft-com:datatypes">
<DATE dt:dt="datetime">1998-10-13T15:56:00</DATE>
<BOOK>
<TITLE>Cosmos</TITLE>
<AUTHOR>Carl Sagan</AUTHOR>
<PUBLISHER>Ballantine Books</PUBLISHER>
</BOOK>
<BOOK>
<TITLE>Catwings
<AUTHOR>Ursula K. Le Guin</AUTHOR>
<PUBLISHER>Scholastic</PUBLISHER>
</BOOK>
<BOOK>
<TITLE>Home Town</TITLE>
<AUTHOR>Tracy Kidder</AUTHOR>
<PUBLISHER>Random House</PUBLISHER>
</BOOK>
</COLLECTION>
Output
Error:
Code = 0xc00ce56d
Source = Line : 14; Char : 5
Error Description = End tag 'BOOK' does not match the start tag 'TITLE'.
Requirements
Implementation: msxml4.dll, msxml2.lib
[C/C++]
Header and IDL files: msxml2.h, msxml2.idl
To view reference information for Visual Basic, C/C++, or Script only, click the Language Filter button
in the upper-left corner of the page.
See Also
IXMLDOMParseError Members