| <POEM> <AUTHOR>Ogden Nash</AUTHOR> <TITLE>Fleas</TITLE> <LINE>Adam</LINE> </POEM> |
| {文档开始} startDocument() <POEM> startElement(null,"POEM",null,{Attributes}) "\n" characters("<POEM>\n...", 6, 1) <AUTHOR> startElement(null,"AUTHOR",null,{Attributes}) "Ogden Nash" characters("<POEM>\n...", 15, 10) </AUTHOR> endElement(null,"AUTHOR",null) "\n" characters("<POEM>\n...", 34, 1) <TITLE> startElement(null,"TITLE",null,{Attributes}) "Fleas" characters("<POEM>\n...", 42, 5) </TITLE> endElement(null,"TITLE",null) "\n" characters("<POEM>\n...", 55, 1) <LINE> startElement(null,"LINE",null,{Attributes}) "Adam" characters("<POEM>\n...", 62, 4) </LINE> endElement(null,"LINE",null) "\n" characters("<POEM>\n...", 67, 1) </POEM> endElement(null,"POEM",null) {文档结束} endDocument() |
| import org.xml.sax.helpers.DefaultHandler; import Javax.xml.parsers.*; import org.xml.sax.*; import org.xml.sax.helpers.*; import Java.util.*; import Java.io.*; |
| public class SAXCounter extends DefaultHandler { private Hashtable tags; //这个Hashtable用来记录tag出现的次数 // 处理文档前的工作 public void startDocument() throws SAXException { tags = new Hashtable();//初始化Hashtable } //对每一个开始元属进行处理 public void startElement(String namespaceURI, String localName, String rawName, Attributes atts) throws SAXException { String key = localName; …… |
| public class SAXReader extends DefaultHandler { Java.util.Stack tags=new Java.util.Stack(); …… |