JAVA SAX 读取xml文档
package com.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class SaxTest {
public static void main(String[] args) {
DefaultHandler handler = new DefaultHandler(){
/*
* 读取标签开始
* (non-Javadoc)
* @see org.xml.sax.helpers.DefaultHandler#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)
*/
@Override
public void startElement(String uri, String localName,
String qName, Attributes attributes) throws SAXException {
System.out.println(11);
if(qName.equals("property") && attributes != null){
for(int i = 0; i<attributes.getLength();i++){
String aname = attributes.getLocalName(i);
if(aname.equals("name")) System.err.println(attributes.getValue(i));
}
}
}
/*
* 读取文本节点
* (non-Javadoc)
* @see org.xml.sax.helpers.DefaultHandler#characters(char[], int, int)
*/
public void characters(char[] ch,
int start,
int length)
{
System.err.println(new String(ch));
}
/*
* 读取标签结束
* (non-Javadoc)
* @see org.xml.sax.helpers.DefaultHandler#endElement(java.lang.String, java.lang.String, java.lang.String)
*/
@Override
public void endElement(String uri, String localName,
String qName) throws SAXException {
System.out.println(11);
if(qName.equals("property")){
System.err.println(qName);
}
}
};
SAXParserFactory fa = SAXParserFactory.newInstance();
fa.setNamespaceAware(true);
try {
SAXParser sp = fa.newSAXParser();
InputStream in = new FileInputStream("E:"+File.separator+"s"+File.separator+"hibernate.cfg.xml");
sp.parse(in, handler);
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
}
}
}