JAVA SAX(流读取方式) 读取xml文档 简单列子

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();
		}
	}

}


猜你喜欢

转载自blog.csdn.net/wbxx727124/article/details/50813965