1 JAVA
public class XmlTest {
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
//Sax解析:固定套路
//1获取解析工厂
SAXParserFactory factory = SAXParserFactory.newInstance();
//2从解析工厂获取解析器
SAXParser parser = factory.newSAXParser();
//3编写处理器
//4加载文档Document注册处理器
PHandler handler = new PHandler();
//5解析
parser.parse(Thread.currentThread().getContextClassLoader().getResourceAsStream("com/alene/learn/p.xml"),handler);
}
}
class PHandler extends DefaultHandler{
@Override
public void startDocument() throws SAXException {
System.out.println("开始解析——————");
}
@Override
public void endDocument() throws SAXException {
System.out.println("——————结束解析");
}
@Override
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 characters(char[] ch, int start, int length) throws SAXException {
String contents = new String(ch,start,length).trim();
if (!contents.equals("")) {
System.out.println("内容为"+ contents);
}else{
System.out.println("内容空");
}
}
}
2. p.xml
<?xml version="1.0" encoding="UTF-8"?>
<persons>
<person>
<name>至尊宝</name>
<age>9000</age>
</person>
<person>
<name>白晶晶</name>
<age>6000</age>
</person>
</persons>