java解析XML之SAX

      SAX解析XML不同于DOM,相对于DOM解析是在内存之中构建DOM树,SAX解析是采用流式的处理方式,每处理完一个标签之后就会被丢弃,不能够回退去重新处理该标签。

  下面是一个demo:

package com.app.sax;

import java.io.File;

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 SaxTest1 {

	public static void main(String[] args) throws Exception {

		//第一步:构建SAXParser
		SAXParserFactory factory = SAXParserFactory.newInstance();
		SAXParser parser = factory.newSAXParser();
		//第二步:解析
		parser.parse(new File("src/font.xml"), new MyHandler());

	}
     // 构建需要handler类
	static class MyHandler extends DefaultHandler {

		@Override
		public void startElement(String uri, String localName, String qName,
				Attributes attributes) throws SAXException {
			System.out.print("<"+qName+">");
		}

		@Override
		public void characters(char[] ch, int start, int length)
				throws SAXException {
			String value=new String(ch,start,length);
			System.out.print(value);
			
		}
		@Override
		public void endElement(String uri, String localName, String qName)
				throws SAXException {
            System.out.print("</"+qName+">");
		}

	}

}

java解析XML之SAX


你可能感兴趣的:(java,sax)