errorprocessor.java

来自「java解析xml的例子」· Java 代码 · 共 75 行

JAVA
75
字号
package myexample;

import java.io.FileInputStream;
import java.io.IOException;

import org.xml.sax.*;
import org.xml.sax.helpers.*;

public class ErrorProcessor extends DefaultHandler
{
    public void warning(SAXParseException ex) throws SAXException
    {
        System.err.println("[Warning] "+getLocationString(ex)+": "+ex.getMessage());
    }
    
    public void error(SAXParseException ex) throws SAXException
    {
    	
        System.err.println("[Error] "+ex.getLineNumber()+": "+ex.getMessage());
    }
    
    public void fatalError(SAXParseException ex) throws SAXException
    {
        System.err.println("[Fatal Error] "+getLocationString(ex)+": "+ex.getMessage());
    }
 
    private String getLocationString(SAXParseException ex) 
    {
        StringBuffer str = new StringBuffer();
        
        String publicId = ex.getPublicId();
        if (publicId != null)
        {
            str.append(publicId);
            str.append(" ");
        }
        
        String systemId = ex.getSystemId();
        if (systemId != null)
        {   
            str.append(systemId);
            str.append(':');
        }
        
        str.append(ex.getLineNumber());
        str.append(':');
        str.append(ex.getColumnNumber());
        
        return str.toString();
    }
 
    public void endElement(String uri,String localName,String qName) throws SAXException
    {
        System.out.println("</"+qName+">");
    }
    
    public static void main(String[] args)
    {
        try
        {
            //利用XMLReaderFactory工厂类,创建XMLReader对象。
            XMLReader xmlReader=XMLReaderFactory.createXMLReader();
            //打开解析器的验证功能。
            xmlReader.setFeature("http://xml.org/sax/features/validation",true);
            
            ErrorProcessor ep=new ErrorProcessor();
            xmlReader.setErrorHandler(ep);
            xmlReader.setContentHandler(ep);
            InputSource is=new InputSource(new FileInputStream("students.xml"));
            xmlReader.parse(is);
        } 
        catch(SAXException e){System.out.println(e.toString());}
        catch(IOException e){System.out.println(e.toString());}
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?