namelister.java

来自「全面的展示了SAX解析XML文件的强大威力」· Java 代码 · 共 70 行

JAVA
70
字号
/*
 * Created on 2005-11-20
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
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;

/**
 * @author Administrator
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class NameLister {

	public static void main(String args[]) {

	    /*if (args.length != 1) {
	      System.err.println("Usage: java NameLister xmlfile.xml");
	      System.exit(-1);
	    }*/

	    try {

	      SAXParserFactory factory = SAXParserFactory.newInstance();
	      SAXParser saxParser = factory.newSAXParser();

	      DefaultHandler handler = new DefaultHandler() {
	        boolean name = false;
	        boolean email = false;
	        public void startElement(String uri, String localName,
	            String qName, Attributes attributes)
	            throws SAXException {
	          if (qName.equalsIgnoreCase("NAME")) {
	            name = true;
	          }else if(qName.equalsIgnoreCase("EMAIL")){
	          	email=true;
	          }
	        }

	        public void characters(char ch[], int start, int length)
	            throws SAXException {
	          if (name) {
	            System.out.println("Name: "
	                + new String(ch, start, length));
	            name = false;
	          }
	          if (email) {
	            System.out.println("Email: "
	                + new String(ch, start, length));
	            email = false;
	          }
	        }
	      };

	      saxParser.parse("xml.xml", handler);

	    } catch (Exception e) {
	      e.printStackTrace();
	    }
	  }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?