#源码
package com.sxt.server.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;
/*
*
* 熟悉SAX解析流程
* @作者:不忘初心
*
*/
public class XmlTest01 {
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException{
//SAX解析
//1.获取解析工厂
SAXParserFactory factory=SAXParserFactory.newInstance();
//2.从解析工厂中获取解析器
SAXParser parse =factory.newSAXParser();
//3.编写处理器
//4.加载文档,Document注册处理器
PHandler handler =new PHandler();
//解析 parse.parse(Thread.currentThread().getContextClassLoader().getResourceAsStream("com/sxt/server/basic/p.xml"),handler);
}
}
class PHandler extends DefaultHandler{
public void startDocument() throws SAXException{
System.out.println("-----解析文档开始-----");
}
public void startElement (String uri, String localName, String qName, Attributes attributes) throws SAXException{
System.out.println(qName+"-->解析开始");
}
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);
}
public void endElement (String uri, String localName, String qName)
throws SAXException
{
System.out.println(qName+"-->解析结束");
}
public void endDocument () throws SAXException
{
System.out.println("-----解析文档结束-----");
}
}
#xml文档内容
<?xml version ="1.0" encoding ="UTF-8"?>
<persons>
<persion>
<name>桃花侠</name>
<age>9000</age>
</persion>
</persons>
#文档处理结果