Java by API/org.xml.sax/ErrorHandler

Материал из Java эксперт
Перейти к: навигация, поиск

implements ErrorHandler

   <source lang="java">

import java.io.StringReader; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.ErrorHandler; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; import org.xml.sax.XMLReader; public class MainClass {

 static public void main(String[] arg) throws Exception{
   boolean validate = false;
   SAXParserFactory spf = SAXParserFactory.newInstance();
   spf.setValidating(validate);
   XMLReader reader = null;
     SAXParser parser = spf.newSAXParser();
     reader = parser.getXMLReader();
   reader.setErrorHandler(new MyErrorHandler());
     reader.parse(new InputSource(new StringReader(xmlString)));

}

 static String xmlString = "<PHONEBOOK>" +
 "  <PERSON>" +
 "   <NAME>Joe Wang</NAME>" +
 "   <EMAIL>joe@yourserver.ru</EMAIL>" +
 "   <TELEPHONE>202-999-9999</TELEPHONE>" +
 "   <WEB>www.jexp.ru</WEB>" +
 "  </PERSON>" +
 "  <PERSON>   " +
 "<NAME>Karol</NAE>" +    // error here
 "   <EMAIL>karol@yourserver.ru</EMAIL>" +
 "   <TELEPHONE>306-999-9999</TELEPHONE>" +
 "   <WEB>www.jexp.ru</WEB>" +
 "  </PERSON>" +
 "  <PERSON>" +
 "   <NAME>Green</NAME>" +
 "   <EMAIL>green@yourserver.ru</EMAIL>" +
 "   <TELEPHONE>202-414-9999</TELEPHONE>" +
 "   <WEB>www.jexp.ru</WEB>" +
 "  </PERSON>" +
 "  </PHONEBOOK>";

} class MyErrorHandler implements ErrorHandler {

 public void warning(SAXParseException e) throws SAXException {
   show("Warning", e);
   throw (e);
 }
 public void error(SAXParseException e) throws SAXException {
   show("Error", e);
   throw (e);
 }
 public void fatalError(SAXParseException e) throws SAXException {
   show("Fatal Error", e);
   throw (e);
 }
 private void show(String type, SAXParseException e) {
   System.out.println(type + ": " + e.getMessage());
   System.out.println("Line " + e.getLineNumber() + " Column "
       + e.getColumnNumber());
   System.out.println("System ID: " + e.getSystemId());
 }

}

      </source>