class
SaxHandler
extends
DefaultHandler {
/** 上一个节点名称 */
private
String tag;
public
void
startDocument()
throws
SAXException {
System.out.println(
"调用startDocument()方法"
);
}
public
void
endDocument()
throws
SAXException {
System.out.println(
"调用endDocument()方法"
);
}
public
void
startElement(String uri, String localName, String qName,
Attributes attributes)
throws
SAXException {
System.out.println(
"调用startElement()方法"
+
"localName:"
+localName+
"qName:"
+qName);
if
(
"person"
.equals(qName)) {
System.out.println(
"person: "
);
System.out.println(
" id: "
+ attributes.getValue(
"id"
));
}
tag = qName;
}
public
void
endElement(String uri, String localName, String qName)
throws
SAXException {
System.out.println(
"调用endElement()方法"
);
}
public
void
characters(
char
[] ch,
int
start,
int
length)
throws
SAXException {
System.out.println(
"调用characters()方法"
);
String data =
new
String(ch, start, length);
if
(
"name"
.equals(tag)) {
System.out.println(
"name: "
+ data);
}
else
if
(
"age"
.equals(tag)) {
System.out.println(
"age: "
+ data);
}
}
}
public
void
SAXParser() {
try
{
javax.xml.parsers.SAXParser parser = SAXParserFactory.newInstance()
.newSAXParser();
SaxHandler handler =
new
SaxHandler();
FileInputStream fis =
new
FileInputStream(file);
parser.parse(file, handler);
}
catch
(FileNotFoundException e) {
e.printStackTrace();
}
catch
(ParserConfigurationException e) {
e.printStackTrace();
}
catch
(SAXException e) {
e.printStackTrace();
}
catch
(IOException e) {
e.printStackTrace();
}
}