Java面试题目之备忘十八(xml之sax)

 

观察者模式

 

awt 

 

actionPerformed(ActionEvent event)

{

}

 

被观察者:watched 事件源

 

观察者: watcher

 

 

java.util  类:Observable 接口:Observer

 

 

 

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 SAXTest
{
	public static void main(String[] args) throws Exception
	{
		//step1: 获得解析器工厂
		
		SAXParserFactory factory = SAXParserFactory.newInstance();
		
		//step2: 获得解析器实例
		
		SAXParser parser = factory.newSAXParser();
		
		
		//开始解析文档
		
		parser.parse(new File("candidate.xml"),new MyHandler());
				
	}
}

class MyHandler extends DefaultHandler
{
	@Override
	public void startDocument() throws SAXException
	{
		System.out.println("~~~~~~~~~~~start document~~~~~~~~");
	}
	
	
	@Override
	public void endDocument() throws SAXException
	{
		System.out.println("~~~~~~~~~~~end document~~~~~~~~~~~~");
	}
	
	
	@Override
	public void startElement(String uri, String localName, String name,
			Attributes attributes) throws SAXException
	{
		System.out.println("Start Element Name : " + name);
	}
	
	
	@Override
	public void endElement(String uri, String localName, String name)
			throws SAXException
	{
		System.out.println("End Element Name : " + name);
	}
	
	@Override
	public void characters(char[] ch, int start, int length)
			throws SAXException
	{
		String content = new String(ch,start,length);
		
		System.out.println("Element Content : " + content);
	}
	
}
 

candidate.xml

<?xml version="1.0"?>
<PEOPLE hello="world">
	<PERSON PERSONID="E01">
		<NAME>Tony Blair</NAME>
		<ADDRESS>10 Downing Street, London, UK</ADDRESS>
		<TEL>(061) 98765</TEL>
		<FAX>(061) 98765</FAX>
		<EMAIL>[email protected]</EMAIL>
	</PERSON>
	<PERSON PERSONID="E02">
		<NAME>Bill Clinton</NAME>
		<ADDRESS>White House, USA</ADDRESS>
		<TEL>(001) 6400 98765</TEL>
		<FAX>(001) 6400 98765</FAX>
		<EMAIL>[email protected]</EMAIL>
	</PERSON>
	<PERSON PERSONID="E03">
		<NAME>Tom Cruise</NAME>
		<ADDRESS>57 Jumbo Street, New York, USA</ADDRESS>
		<TEL>(001) 4500 67859</TEL>
		<FAX>(001) 4500 67859</FAX>
		<EMAIL>[email protected]</EMAIL>
	</PERSON>
	<PERSON PERSONID="E04">
		<NAME>Linda Goodman</NAME>
		<ADDRESS>78 Crax Lane, London, UK</ADDRESS>
		<TEL>(061) 54 56789</TEL>
		<FAX>(061) 54 56789</FAX>
		<EMAIL>[email protected]</EMAIL>
	</PERSON>
</PEOPLE>
 

 

 

 

你可能感兴趣的:(java,xml,面试)