[环境]:SAX 2.0 ,Xerces-J 2.9.1
1、SAX2.0使用org.xml.sax.XMLReader接口代替了Parser接口。如果要使用SAX解析XML,那么首先要获得XMLReader的一个实现对象。
(1)、使用javax.xml.parsers.SAXParser创建XMLReader
Sun JDK提供了javax.xml.parsers.SAXParser,由SAXParser可以获取一个XMLReader。由于javax.xml.parsers.SAXParser是JDK自带驱动,所以,直接编译就可以运行了。
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setValidating(true);//开启验证XML功能
SAXParser parser = factory.newSAXParser();
XMLReader reader = parser.getXMLReader();
(2)、使用第三方驱动。本例使用Xerces驱动: org.apache.xerces.parsers.SAXParser。
Xerces驱动下载地址:http://xerces.apache.org/xerces2-j/。
下载后,找到xercesImpl.jar,并将其加入到classpath路径中。如果不加入classpath路径,可以在编译运行时指定xercesImpl.jar的位置。例:
javac -cp "xercesImpl.jar;." SAXDemo.java
java -cp "xercesImpl.jar;." SAXDemo
此时,创建XMLReader代码如下:
XMLReader reader = XMLReaderFactory.createXMLReader();
但是运行时要指定驱动的位置:
java -Dorg.xml.sax.driver=org.apache.xerces.parsers.SAXParser SAXDemo
也可以在代码中指定具体驱动:
String driver = "org.apache.xerces.parsers.SAXParser";
XMLReader reader = XMLReaderFactory.createXMLReader(driver);
本文来源:BlogJava Winty