This topic adds error handling functionality to the script in the previous topic, Using XSLT with the DOM from an HTML Page.
XSLT does not provide a native error-detecting and error-reporting mechanism for determining whether a transformation works as intended, or for handling exceptions when they occur. To implement error-handling while processing XSLT or XML, use the following DOM facilities:
validateOnParse
property of a DOMDocument
object. When this property is set to "false"
before the object is loaded, the parser checks to see if the document is well-formed. When set to "true"
, the parser validates the XML document against a DTD or its XML Schema definitions.errorCode
property of the parseError
object (that is, xmldom.parseError.errorCode
, where xmldom
is a DOM instance of the XML document). If the value of this property is "0"
, the document was parsed without error. Any other value indicates that an error has occurred. To examine the nature of the error, check other properties of the parseError
object. For example, the xmldom.parseError.reason
property describes the cause of the error, and xmldom.parseError.line
indicates where the error occurred. For more information, see IXMLDOMParseError Members, in XML DOM Reference.To validate the region.xsl style sheet, add the following JScript fragments to the transformIt()
function within the HTML file, qsalesregion.html. For more information about the files for this example, see Using XSLT with the DOM from an HTML Page.
To add the following code to the transformIt() function
objXSLT
object variable.
objXSLT.validateOnParse = true;
objXSLT.load('region.xsl')
statement.
if (objXSLT.parseError.errorCode != 0) { var strErrMsg = "Problem Parsing Style Sheet:<br />" + " Error #: " + objXSLT.parseError.errorCode + "<br />" + " Description: " + objXSLT.parseError.reason + "<br />" + " In file: " + objXSLT.parseError.url + "<br />" + " Line #: " + objXSLT.parseError.line + "<br />" + " Character # in line: " + objXSLT.parseError.linepos + "<br />" + " Character # in file: " + objXSLT.parseError.filepos + "<br />" + " Source line: " + objXSLT.parseError.srcText; objResTree.innerHTML = strErrMsg; return false; }
The resulting file is shown in XSLT HTML DOM File with Error Handling.
Similar logic for validating the XML document, region.xml, could be provided at analogous locations in the script.
Performing Error Handling with XSLT