案例代码如下:
1.xml文件名为p.xml
<?xml version="1.0" encoding="UTF-8"?>
<persons>
<person>
<name>至尊宝</name>
<age>9000</age>
</person>
</persons>
2.java文件名为XmlTest01.java
package com.stu.sever.basic;
import java.io.IOException;
import javax.xml.parsers.ParserConfigurationException;
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 XmlTest01 {
public static void main(String[] args) throws SAXException, IOException, ParserConfigurationException {
//SAX解析
//1、获取解析工厂
SAXParserFactory factory=SAXParserFactory.newInstance();
//2、从解析工厂获取解析器
SAXParser parse =factory.newSAXParser();
//3、编写处理器
//4、加载文档 Document 注册处理器
PHandler handler=new PHandler();
//5、解析
parse.parse(Thread.currentThread().getContextClassLoader()
.getResourceAsStream("com/stu/sever/basic/p.xml")
,handler);
}
}
class PHandler extends DefaultHandler{
@Override
public void startDocument() throws SAXException {
System.out.println("解析文档开始");
}
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
String contents = new String(ch,start,length).trim();
if(contents.length()>0) {
System.out.println("内容为——>"+contents);
}else {
System.out.println("内容为-->"+"空");
}
}
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
System.out.println(qName+"解析开始");
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
System.out.println(qName+"解析结束");
}
@Override
public void endDocument() throws SAXException {
System.out.println("解析文档结束");
}
}
案例实现如下: