1.项目结构
2.Person.xml
<?xml version="1.0" encoding="UTF-8"?>
<person>
<p>
<name>gs</name>
<age>22</age>
</p>
<p>
<name>lili</name>
<age>20</age>
</p>
</person>
3.XmlSax.java
原文链接:https://www.f2er.com/xml/296233.htmlpackage com.gs.xml;
import java.io.File;
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;
/**
* 通过Javax.xml.parser 包中的SaxParser类解析xml文件
*
*/
public class XmlSax {
public static void main(String[] args) throws Exception,SAXException {
/**
* 1.创建解析器工厂
* 2.通过解析器工厂生产解析器
* 3.通过解析器的parse(File f,DefaultHandler dh)方法解析xml文件
* 其中 使用指定的 DefaultHandler 将指定文件的内容解析为 XML。
* 4.创建一个类继承DefaultHander类,重写解析过程中的三个方法
*/
SAXParserFactory factory=SAXParserFactory.newInstance();
SAXParser parser=factory.newSAXParser();
parser.parse(new File("src/Person.xml"),new MyDefaultHander());
}
}
class MyDefaultHander extends DefaultHandler{
/**
*/
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 {
System.out.println(new String(ch,start,length));//这三个参数能生成一个字符串
}
/**
*/
public void endElement(String uri,String qName)
throws SAXException {
System.out.println("</"+qName+">");
}
}