- 你所在位置:首页 〉VS.net〉XML〉XML基础教程〉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());
}
}
- 打印这篇文章
- 与本文主题相关的文章
-
- 返回首页
