独上高楼网站
  •    你所在位置:首页 VS.netXMLXML基础教程〉XML基础教程:SAX解析器:SAXException异常
  • XML基础教程:SAX解析器:SAXException异常
  • 作者:佚名  文章来源:http://blog.csdn.net/  发布日期:2008-03-02  浏览次数:486
  • 打印这篇文章
  • 关于SAXException异常


        在使用SAX处理解析过程中出现的错误,当发生致命的错误时,应用抛出一个SAXException对象给解析器,解析
        器将停止parse方法的执行。
        实际上,DefaultHandler类中的方法都可以抛出一个SAXException对象给解析器,比如,事件处理器在调用
        startDocument()方法时,突然决定终止解析文件,就可以抛出一个SAXException对象给解析器,解析器停止
        parse方法的 执行,不再报告任何事件给事件处理器。

    一个完整的例子
    example.xml:

    < ?xml version="1.0" ?>
    < guest>
        < spent name="weng">1213< /spent> 
        < spent name="li">3213< /spent>
        < spent name="rui">213< /spent>
        < spent name="weng">6213< /spent>
        < spent name="weng">2088< /spent>
        < spent name="zhang">1013< /spent>
    < /guest>

    < !--========SaxXml.java============== -->

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

    public class SaxOne extends DefaultHandler {
        public static int count = 0 ;
     
        public static void main(String[] args){
                   File file = new File("I:\\JAVA\\Eclipse\\XmlDemo\\ch5-3.xml");  
                   SAXParserFactory saxFactory = SAXParserFactory.newInstance();
                   try {
                         SAXParser parser = saxFactory.newSAXParser();    
                         parser.parse(file,new SaxOne());    
                   } catch (ParserConfigurationException e) {
                         e.printStackTrace();
                   } catch (SAXException e) {
                         e.printStackTrace();
                   } catch (IOException e){
                         e.printStackTrace();
                   }
                   System.out.println("\n事件处理器处理了"+ count +"个事件");
        }
     
        public void startDocument()  throws SAXException{
                   System.out.println("开始解析XML文件");
                   count ++;
        }
        public void startElement(String uri,String localName,String qName,Attributes attributes)
        throws SAXException{
                   System.out.print("< "+qName+">");
                   count++;
        }
        public void endDocument() throws SAXException{
                   System.out.println();
                   System.out.println("结束解析XML文件");
                   count ++;
        }
        public void endElement(String uri, String localName, String qName) throws SAXException{
                   System.out.print("< /" + qName + ">");
                   count ++;
        }
        public void characters(char[] ch,int start,int length) throws SAXException{
                   System.out.print(new String(ch,start,length));
                   count ++;  
        }
        public void processingInstruction(String target, String data) throws SAXException{
                   System.out.println("处理指令的目标是" + target);
                   System.out.println("处理指令的内容是" + data);
        }
        public void setDocumentLocator(Locator locator){
                   System.out.println(locator.getColumnNumber() + ":" + locator.getLineNumber());
        }
    }

     

  • 打印这篇文章
  • 与本文主题相关的文章
  • 返回首页