import org.xml.sax.*;
import org.xml.sax.helpers.*;
import javax.xml.parsers.*;
import java.util.Stack;
public class saxJava extends DefaultHandler {
//将数据保存在Stack中
Stack tags = new Stack();
public saxJava() {
super();
}
public static void main(String args[]) {
//当前时间,单位毫秒
long lasting = System.currentTimeMillis();
try {
//创建解析工厂
SAXParserFactory sf = SAXParserFactory.newInstance();
//得到解析器
SAXParser sp = sf.newSAXParser();
//设置内容处理器
saxJava reader = new saxJava();
//
sp.parse(new InputSource("a.xml"), reader);
}catch (Exception e) {
e.printStackTrace();
}
System.out.println("运行时间:" + (System.currentTimeMillis() - lasting) + "毫秒");
}
public void characters(char ch[], int start, int length) throws SAXException {
String tag = (String) tags.peek();
if (tag.equals("code")) {
System.out.print(new String(ch, start, length));
}
if (tag.equals("pass")) {
System.out.print(new String(ch, start, length));
}
if (tag.equals("name")) {
System.out.print(new String(ch, start, length));
}
if (tag.equals("money")) {
System.out.print(new String(ch, start, length));
}
}
public void startElement(String uri,String localName,String qName,Attributes attrs){
tags.push(qName);
}
}
xml文档是我copy过来的!!!!
xml文档(a.xml)内容:
<?xml version="1.0" encoding="gbk"?>
<Accounts>
<Account type="by0003">
<code>100001</code>
<pass>123</pass>
<name>李四</name>
<money>1000000.00</money>
</Account>
<Account type="hz0001">
<code>100002</code>
<pass>123</pass>
<name>张三</name>
<money>1000.00</money>
</Account>
</Accounts>