[an error occurred while processing this directive]

Handling Errors While Parsing an XML File


This Example shows you how to Handle Errors While parsing an XML document. JAXP (Java API for XML Processing) is an interface which provides parsing of xml documents. Here the Document BuilderFactory is used to create new DOM parsers.There are some of the methods used in code given below for Handling Errors:-

SAXParserFactory saxpf = SAXParserFactory.newInstance():-This method defines a factory API that enables applications to configure and obtain a SAX based parser to parse XML documents.

SAXParser parser = saxpf.newSAXParser():-By using this we create a new instance of a SAXParser using the currently configured factory.

SAXHandler handler = new SAXHandler():-it is a supportive class for SAXBuilder.

Xml code for the program generated is:-

<?xml version="1.0" encoding="UTF-8"?>
<!--     Information About Employees -->
    <Employee Id="Rose-2345">
        <name>Girish Tewari</name>
       <Doj>May 2008</Doj>
    <!-- Information about other  Employee -->    
    <Employee Id="Rose-2346">
         <name>Mahendra Singh</name>
        <Doj>May 2008</Doj>


 * @Program to Handle Errors While Parsing an XML File 
 * HandlingErrors.java 
 * Author:-RoseIndia Team
 * Date:-23-July-2008

import java.io.File;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import org.xml.sax.helpers.DefaultHandler;

public class HandlingErrors {
    public static void main(String[] args) throws Exception {
        File f = new File("Document4.xml");
        SAXParserFactory saxpf = SAXParserFactory.newInstance();
        SAXParser parser = saxpf.newSAXParser();
        SAXHandler handler = new SAXHandler();
        parser.parse(f, handler);

private static final class SAXHandler extends DefaultHandler {
        public void startElement(String uri, String localName,
           String qName, Attributes attrs) throws SAXException {
            if (qName.equals("Company")) {
        public void error(SAXParseException ex) throws SAXException {
            System.out.println("ERROR: " + ex.getLineNumber() +
                    "" + ex);
        public void fatalError(SAXParseException ex) throws SAXException {
            System.out.println("FATAL_ERROR:  " +
                    ex.getLineNumber() + " " + ex);
        public void warning(SAXParseException ex) throws SAXException {
            System.out.println("WARNING:  " +
                    ex.getLineNumber() + " " + ex);

Output of the program:-

ERROR: 3org.xml.sax.SAXParseException: Document root element "Company"
must match DOCTYPE root 
ERROR: 3org.xml.sax.SAXParseException: Document is invalid: no grammar found.

DownLoad Source Code


[an error occurred while processing this directive]